Dan Gohman
5aba2a8293
Integrate Jeffery Yasskin's suggestions with respect to
...
traps flowing through memory references, add some text to
better cover phi nodes and externally-visible side effects,
add an example of instructions being control-dependent
on a trap value, and reword some of the existing trap rules.
llvm-svn: 102399
2010-04-26 23:36:52 +00:00
Jeffrey Yasskin
0819d5660a
Consolidate the description of volatile operations, now that some of the
...
intrinsics have volatile semantics in addition to the load and store
instructions.
llvm-svn: 102384
2010-04-26 21:21:24 +00:00
Dan Gohman
bdcee3e015
Branching or switching on trap transfers imminent undefined behavior
...
onto control-dependent instructions.
llvm-svn: 102381
2010-04-26 20:54:53 +00:00
Dan Gohman
d051dc29ba
Fix HTML errors that Jeffery Yasskin noticed.
...
llvm-svn: 102376
2010-04-26 20:21:21 +00:00
Dan Gohman
63f016a4b5
PHI nodes also do not necessarily return trap with a trap operand.
...
llvm-svn: 102278
2010-04-24 22:15:58 +00:00
Dan Gohman
cc14435fdf
Switch getelementptr inbounds and sdiv exact from undef to trap.
...
llvm-svn: 102175
2010-04-23 15:23:32 +00:00
Dan Gohman
a75ad3c1ca
Add an initial description of a new concept: trap values, and change
...
the definition of the nsw and nuw flags to make use of it.
nsw was introduced to help optimizers answer yes to the following:
// Can we change i from i32 to i64 to eliminate the cast inside the loop?
for (int i = 0; i < n; ++i) A[i] *= 0.1;
// Can we assume that this loop will eventually terminate?
for (int i = 0; i <= n; ++i) A[i] *= 0.1;
In its current form, it isn't truly sufficient for either.
In the first case, if the increment overflows, it'll still have some
valid i32 value; sign-extending it will produce a value which is 33
homogeneous sign bits trailed by 31 independent undef bits. If i is
promoted to i64, it won't have those same values when it reaches that
point. (The compiler could recover here by reasoning about how i is
used by the load, but that's a lot more complicated and isn't always
possible.)
In the second case, there is no value for i which will be greater than
n, so having the increment return undef on overflow doesn't help.
Trap values are a formalization of some existing concepts that we have
about LLVM IR, and give the optimizers a better basis for answering yes
to both questions above.
llvm-svn: 102140
2010-04-22 23:14:21 +00:00
Duncan Sands
89431f240a
Pointed out by housel on #llvm.
...
llvm-svn: 101395
2010-04-15 20:35:54 +00:00
Chris Lattner
2b868eff9b
typo
...
llvm-svn: 100738
2010-04-08 00:54:34 +00:00
Chris Lattner
a9fcf0a3d7
document isvolatile etc.
...
llvm-svn: 100737
2010-04-08 00:53:57 +00:00
Mon P Wang
59f3cab93b
Update langref for memcpy, memmove, and memset
...
llvm-svn: 100611
2010-04-07 06:35:53 +00:00
Chris Lattner
122572e13a
Have the inst emitter add the !srcloc mdnode to the machine instr.
...
Have the asmprinter use the mdnode to scavenge a source location if
present. Document this nonsense in langref.
llvm-svn: 100607
2010-04-07 05:38:05 +00:00
Chris Lattner
a0ac2d995f
various cleanups from daniel
...
llvm-svn: 98528
2010-03-15 04:12:21 +00:00
Chris Lattner
7c46b31729
tidy up and expound more on how half-float works.
...
llvm-svn: 98524
2010-03-14 23:03:31 +00:00
Anton Korobeynikov
51a709db4d
Document fp16 intrinsics
...
llvm-svn: 98505
2010-03-14 18:42:47 +00:00
Chris Lattner
d6d11e53ab
add support, testcases, and dox for the new GHC calling
...
convention. Patch by David Terei!
llvm-svn: 98212
2010-03-11 00:22:57 +00:00
Evan Cheng
cfe037000a
Add documentation on sibling call optimization. Rename tailcall2.ll test to sibcall.ll.
...
llvm-svn: 97980
2010-03-08 21:05:02 +00:00
Devang Patel
79a4a71472
Add metadata example.
...
llvm-svn: 97764
2010-03-04 23:44:48 +00:00
Chris Lattner
56c9bd0c6b
attributes are not part of types anymore, patch by James Woodyatt!
...
llvm-svn: 97557
2010-03-02 06:36:51 +00:00
Dan Gohman
df1b620863
PerformTailCallOpt was renamed to GuaranteedTailCallOpt to
...
better reflect its meaning, now that tail call optimizations
are done by default in some cases.
llvm-svn: 97530
2010-03-02 01:08:11 +00:00
Dan Gohman
f244a308c4
Fix spelling.
...
llvm-svn: 97447
2010-03-01 17:41:39 +00:00
Bill Wendling
25090c690a
Fix HTML.
...
llvm-svn: 97170
2010-02-25 21:23:24 +00:00
Dan Gohman
8428b7f9a0
Fix a typo.
...
llvm-svn: 97144
2010-02-25 16:51:31 +00:00
Dan Gohman
a34a47406d
Clarify the description of pointer types, and move the
...
address space content to its own paragraph.
llvm-svn: 97143
2010-02-25 16:50:07 +00:00
Dan Gohman
f8e12a593d
Update LangRef to match the code; pointers default to being 64-bit.
...
llvm-svn: 96873
2010-02-23 02:44:03 +00:00
David Greene
c10133139e
Add support for emitting non-temporal stores for DAGs marked
...
non-temporal. Fix from r96241 for botched encoding of MOVNTDQ.
Add documentation for !nontemporal metadata.
Add a simpler movnt testcase.
llvm-svn: 96386
2010-02-16 20:50:18 +00:00
Chris Lattner
2265d6280b
Add support for a union type in LLVM IR. Patch by Talin!
...
llvm-svn: 96011
2010-02-12 20:49:41 +00:00
Charles Davis
d69c12ecc6
Add a new function attribute, 'alignstack'. It will indicate (when the backends
...
implement support for it) that the stack should be forcibly realigned in the
prologue (and the process reversed in the epilogue).
llvm-svn: 95945
2010-02-12 00:31:15 +00:00
Jakob Stoklund Olesen
83ebc265b3
Reintroduce the InlineHint function attribute.
...
This time it's for real! I am going to hook this up in the frontends as well.
The inliner has some experimental heuristics for dealing with the inline hint.
When given a -respect-inlinehint option, functions marked with the inline
keyword are given a threshold just above the default for -O3.
We need some experiments to determine if that is the right thing to do.
llvm-svn: 95466
2010-02-06 01:16:28 +00:00
Chris Lattner
c94ab2c354
move "Metadata Nodes and Metadata Strings" section to the right place in the
...
document and edit it.
llvm-svn: 93559
2010-01-15 21:50:19 +00:00
Eric Christopher
3c5d9dc0e3
Remove the InlineHint attribute. There are no current or planned
...
users.
llvm-svn: 93558
2010-01-15 21:36:30 +00:00
Chris Lattner
c282e8bbaf
mention that unwind isn't to be trusted, patch by Dustin Laurence
...
llvm-svn: 93518
2010-01-15 18:08:37 +00:00
Devang Patel
245046024d
Add top level section for named metadata.
...
llvm-svn: 93172
2010-01-11 19:35:55 +00:00
Jeffrey Yasskin
42686afc01
Improve unclear bits and inaccuracies in structure and insertvalue
...
documentation.
Patch by Dustin Laurence!
llvm-svn: 93170
2010-01-11 19:19:26 +00:00
Jeffrey Yasskin
c514410b5e
Clarify the requirements for a "tail call" to actually be optimized into a
...
jump. People clearly weren't finding the extra requirements in
CodeGenerator.html.
llvm-svn: 93070
2010-01-09 19:44:16 +00:00
Chris Lattner
c6ac6d3531
improve documentation for linkonce to be less confusing.
...
llvm-svn: 93066
2010-01-09 19:15:14 +00:00
Eric Christopher
79200db8b8
Grammar thinko.
...
llvm-svn: 93027
2010-01-08 21:42:39 +00:00
Devang Patel
ab66612f1b
NamedMDNode is a collection MDNodes.
...
llvm-svn: 92761
2010-01-05 20:41:31 +00:00
Eric Christopher
496de21731
Update docs for bitcode changes. For object size checking we won't
...
work with partial objects so just count the type as a boolean. Update
appropriately.
llvm-svn: 91954
2009-12-23 00:29:49 +00:00
Eric Christopher
2a9b28c14b
More updates to objectsize intrinsic docs.
...
llvm-svn: 90644
2009-12-05 02:46:03 +00:00
Eric Christopher
89bb07c217
Update per Bill's comments. Work in progress.
...
llvm-svn: 90271
2009-12-01 22:28:41 +00:00
Eric Christopher
859360e596
First pass at llvm.objectsize documentation.
...
llvm-svn: 90116
2009-11-30 08:03:53 +00:00
Duncan Sands
d68bde384e
Vector types are no longer required to have a power-of-two length.
...
llvm-svn: 90004
2009-11-27 13:38:03 +00:00
Duncan Sands
a255c38866
These code generator limitations have been removed.
...
llvm-svn: 90003
2009-11-27 12:33:22 +00:00
Dan Gohman
b696ff22f7
The inbounds keyword isn't relevant to overindexing of
...
static array types. Thanks to Duncan for pointing this out!
llvm-svn: 86576
2009-11-09 19:01:53 +00:00
Dan Gohman
e2afe7c1c7
Remove the "special case" for zero-length arrays, and rephrase this
...
paragraph to be more precise.
llvm-svn: 86572
2009-11-09 18:40:39 +00:00
Chris Lattner
cdefc1c441
add the ability for TargetData to return information about legal integer
...
datatypes on a given CPU. This is intended to allow instcombine and other
transformations to avoid converting big sequences of operations to an
inconvenient width, and will help clean up after SRoA. See also "Adding
legal integer sizes to TargetData" on Feb 1, 2009 on llvmdev, and PR3451.
Comments welcome.
llvm-svn: 86370
2009-11-07 09:35:34 +00:00
Bill Wendling
772f96dca7
Add missing end-tag.
...
llvm-svn: 85769
2009-11-02 00:25:26 +00:00
Bill Wendling
a2574815af
Some formatting changes.
...
llvm-svn: 85768
2009-11-02 00:24:16 +00:00
Chris Lattner
2bbe57b2b8
Revert 85678/85680. The decision is to stay with the current form of
...
indirectbr, thus we don't need "blockaddr(@func, null)". Eliminate it
for simplicity.
llvm-svn: 85699
2009-11-01 01:27:45 +00:00
Chris Lattner
cbab35746f
Make blockaddress(@func, null) be valid, and make 'deleting a basic
...
block with a blockaddress still referring to it' replace the invalid
blockaddress with a new blockaddress(@func, null) instead of a
inttoptr(1).
This changes the bitcode encoding format, and still needs codegen
support (this should produce a non-zero value, referring to the entry
block of the function would also be quite reasonable).
llvm-svn: 85678
2009-10-31 20:08:37 +00:00
Gabor Greif
f47a614c2f
use metavariable <result> instead of SSA name %result for consistency
...
llvm-svn: 85388
2009-10-28 13:14:50 +00:00
Gabor Greif
bb9bbb25af
ooops, SSA name should not be part of the link
...
llvm-svn: 85387
2009-10-28 13:05:07 +00:00
Gabor Greif
fad893b79c
advertise new syntax for unnamed instructions
...
and eliminate confusing double-use of SSA names
(work in progress)
llvm-svn: 85385
2009-10-28 09:21:30 +00:00
Chris Lattner
2bc8002f4c
rename indbr -> indirectbr to appease the residents of #llvm.
...
llvm-svn: 85351
2009-10-28 00:19:10 +00:00
Chris Lattner
9bfb80f9db
typo
...
llvm-svn: 85322
2009-10-27 21:52:54 +00:00
Chris Lattner
5b2fc7b0b2
you can't take the address of the entry block of a function.
...
llvm-svn: 85321
2009-10-27 21:49:40 +00:00
Chris Lattner
59da83273a
improvements from gabor.
...
llvm-svn: 85320
2009-10-27 21:44:20 +00:00
Chris Lattner
14fadd0f45
fix things pointed out by Dan!
...
llvm-svn: 85310
2009-10-27 21:19:13 +00:00
Chris Lattner
10bd83bf85
document the forthcoming blockaddress constant.
...
llvm-svn: 85306
2009-10-27 21:01:34 +00:00
Chris Lattner
17c9caf0e3
fix pasto pointed out by Rafael
...
llvm-svn: 85294
2009-10-27 20:27:24 +00:00
Chris Lattner
fdda543cea
add enough support for indirect branch for the feature test to pass
...
(assembler,asmprinter, bc reader+writer) and document it. Codegen
currently aborts on it.
llvm-svn: 85274
2009-10-27 19:13:16 +00:00
Nick Lewycky
f359214d66
Fix reversed logic spotted by Owen Anderson.
...
llvm-svn: 85251
2009-10-27 16:56:58 +00:00
Victor Hernandez
d6e238c611
Remove all references to MallocInst and FreeInst
...
llvm-svn: 85177
2009-10-26 23:44:29 +00:00
Dale Johannesen
2bb120a97f
Rename msasm to alignstack per review.
...
llvm-svn: 84795
2009-10-21 23:28:00 +00:00
Dale Johannesen
98d4e2663f
Documentation for the new msasm flag, which is no
...
worse than the rest of the asm documentation.
llvm-svn: 84037
2009-10-13 21:56:55 +00:00
Nick Lewycky
ee0c1726d8
Force memory use markers to have a ConstantInt for the size argument.
...
llvm-svn: 83960
2009-10-13 07:57:33 +00:00
Nick Lewycky
ab1dbddc83
Add new "memory use marker" intrinsics. These indicate lifetimes and invariant
...
sections of memory objects.
llvm-svn: 83953
2009-10-13 07:03:23 +00:00
Benjamin Kramer
1791be26f8
Documentation: Perform automated correction of common typos.
...
llvm-svn: 83849
2009-10-12 14:46:08 +00:00
Chris Lattner
1f970dea03
fix broken anchors.
...
llvm-svn: 83715
2009-10-10 18:26:06 +00:00
Nick Lewycky
04cea17209
Remove the "metadata*" type and simplify the code it complicated. This was only
...
used to support GlobalVariables storing MDNodes, back when they were derived
from Constant before the introduction of NamedMDNode, but never removed.
llvm-svn: 82943
2009-09-27 23:27:42 +00:00
Nick Lewycky
676778014b
Remove dead code from this function and optimize. Update its corresponding
...
LangRef entry too.
llvm-svn: 82890
2009-09-27 07:55:32 +00:00
Nick Lewycky
c54e1a5528
Move the integer type out of 'derived' and into 'primitive'. This permits us
...
to explain that derived types are all composed of other types, which primitive
types aren't. Without moving integer out of derived, this wouldn't be true.
Perform a few trivial cleanups; 'i1' went from a link to #t_primitive to
#t_integer (a holdover from when it was a bool type I suppose).
llvm-svn: 82884
2009-09-27 00:45:11 +00:00
Dale Johannesen
cbafb61a84
Revise C library functions description to be vaguer, per Chris.
...
llvm-svn: 82776
2009-09-25 17:04:42 +00:00
Dale Johannesen
74af0f3eb0
Clarify that llvm attaches C language semantics to
...
functions with names that match the C library.
llvm-svn: 82701
2009-09-24 18:38:21 +00:00
Chris Lattner
1619ca8d56
more typos
...
llvm-svn: 81499
2009-09-11 01:49:31 +00:00
Chris Lattner
7e056a9740
another typo
...
llvm-svn: 81243
2009-09-08 19:45:34 +00:00
Chris Lattner
103aabbae7
fix a couple typos pointed out by edwin and duncan
...
llvm-svn: 81219
2009-09-08 15:13:16 +00:00
Chris Lattner
b467389331
add some more notes.
...
llvm-svn: 81170
2009-09-07 23:33:52 +00:00
Chris Lattner
01f8bf80ac
describe undef semantics in some more detail.
...
llvm-svn: 81167
2009-09-07 22:52:39 +00:00
Dan Gohman
df6c046bc3
Fix the syntax of add/sub/mul nsw/nuw and sdiv exact.
...
llvm-svn: 80805
2009-09-02 17:31:42 +00:00
Dale Johannesen
f90fc6544b
Add an 'inline hint' attribute to represent source
...
code hints that it would be a good idea to inline
a function ("inline" keyword). No functional change
yet; FEs do not emit this and inliner does not use it.
llvm-svn: 80063
2009-08-26 01:08:21 +00:00
Chris Lattner
e9f6a3fcdc
improve documentation for linker_private linkage.
...
llvm-svn: 79893
2009-08-24 04:32:16 +00:00
Dan Gohman
0a6e8a4bcd
Clarify a few things in the inbounds description.
...
Describing inbounds in terms of infinitely precise arithmetic prohibits
the assumption address-space-sized integer arithmetic will wrap, with
a wrapped-around value landing within the same object.
llvm-svn: 79538
2009-08-20 17:08:17 +00:00
Chris Lattner
94f55a81bd
common globals may also not be marked constant.
...
llvm-svn: 78169
2009-08-05 05:41:44 +00:00
Chris Lattner
19d238562d
Clarify common linkage and the requirements on it. Enforce
...
them in the verifier.
llvm-svn: 78160
2009-08-05 05:21:07 +00:00
Dan Gohman
394863c49d
Add one-past-the-end language to the inbounds keyword.
...
llvm-svn: 77460
2009-07-29 16:00:30 +00:00
Chris Lattner
7bc86c5d43
some wording changes.
...
llvm-svn: 77443
2009-07-29 06:44:13 +00:00
Andreas Bolka
5707be6a51
Fix a few typos and add links.
...
llvm-svn: 77403
2009-07-29 00:02:05 +00:00
Dan Gohman
490eb36e1d
Add a new keyword 'inbounds' for use with getelementptr. See the
...
LangRef.html changes for details.
llvm-svn: 77259
2009-07-27 21:53:46 +00:00
Andreas Bolka
0cb4ca7575
Fix typo.
...
llvm-svn: 77244
2009-07-27 20:37:10 +00:00
Dan Gohman
40927be3bf
Following discussion on llvm-dev ("proposed new rule for getelementptr"),
...
add a new "Pointer Aliasing Rules" section.
llvm-svn: 77216
2009-07-27 18:07:55 +00:00
Dan Gohman
f6e44e6e47
Update to new syntax.
...
llvm-svn: 77043
2009-07-25 02:23:48 +00:00
Dan Gohman
001d777207
Rename the new unsigned and signed keywords to nuw and nsw,
...
which stand for no-unsigned-wrap and no-signed-wrap.
llvm-svn: 76810
2009-07-22 22:44:56 +00:00
Dan Gohman
11a1a3ac43
Misc. doc fixes following suggestions from Eli.
...
llvm-svn: 76699
2009-07-22 00:04:19 +00:00
Dan Gohman
8cde898476
Documentation for the new non-overflow and exact keywords.
...
llvm-svn: 76495
2009-07-20 22:41:19 +00:00
Chris Lattner
eac40b1473
implement a new magic global "llvm.compiler.used" which is like llvm.used, but
...
doesn't cause ".no_dead_strip" to be emitted on darwin.
llvm-svn: 76399
2009-07-20 06:14:25 +00:00
Chris Lattner
36b89d4fb7
document llvm.used and llvm.metadata. Stub out llvm.global_[cd]tors
...
llvm-svn: 76396
2009-07-20 05:55:19 +00:00
Bill Wendling
b0bb37d802
Rename the index to linkage types.
...
llvm-svn: 76394
2009-07-20 02:41:50 +00:00
Bill Wendling
e9aa2cf10f
More reformatting.
...
llvm-svn: 76393
2009-07-20 02:39:26 +00:00