1
0
mirror of https://github.com/RPCS3/llvm-mirror.git synced 2024-11-24 03:33:20 +01:00
Commit Graph

751 Commits

Author SHA1 Message Date
Owen Anderson
dccc4e4b9a Generalize @llvm.ctlz, @llvm.cttz, and @llvm.ctpop to work on vectors of integers, and fix the one optimization pass that I'm aware of that needs updating for this. At least one current target, ARM NEON, can implement these operations on vectors directly.
llvm-svn: 134265
2011-07-01 21:52:38 +00:00
Evan Cheng
91e568589d Add missing operand. rdar://9694169
llvm-svn: 134078
2011-06-29 17:14:00 +00:00
Dan Gohman
6251ddaa83 Document nonlazybind.
llvm-svn: 133160
2011-06-16 16:03:13 +00:00
Bruno Cardoso Lopes
b6afc5168f Add one more argument to the prefetch intrinsic to indicate whether it's a data
or instruction cache access. Update the targets to match it and also teach
autoupgrade.

llvm-svn: 132976
2011-06-14 04:58:37 +00:00
Dan Gohman
0181c67669 Fix copy+pastos.
llvm-svn: 132168
2011-05-27 00:36:31 +00:00
Dan Gohman
3dd68e8eca Document llvm.exp and llvm.pow.
llvm-svn: 131921
2011-05-23 21:13:03 +00:00
Chris Lattner
2be4296485 insertvalue takes a variable number of arguments, document this, fixing PR9935.
llvm-svn: 131850
2011-05-22 07:18:08 +00:00
Nick Lewycky
441a5d42ed Fix errors in this llvm ir example.
llvm-svn: 131416
2011-05-16 19:29:30 +00:00
NAKAMURA Takumi
ada5cc7c01 docs: Introduce cascading style <div> and <p> continued on <h[2-5]>.
<h2>Section Example</h2>
<div> <!-- h2+div is applied -->
<p>Section preamble.</p>

<h3>Subsection Example</h3>
<p> <!-- h3+p is applied -->
Subsection body
</p>

<!-- End of section body -->
</div>

FIXME: Care H5 better.
llvm-svn: 130040
2011-04-23 00:30:22 +00:00
NAKAMURA Takumi
3edcd4ba6a docs: Use <Hn> as Heading elements instead of <DIV class="doc_foo">.
H1 ... doc_title
H2 ... doc_section
H3 ... doc_subsection
H4 ... doc_subsubsection

llvm-svn: 129736
2011-04-18 23:59:50 +00:00
Chris Lattner
0304b82f80 Fix a ton of comment typos found by codespell. Patch by
Luis Felipe Strano Moraes!

llvm-svn: 129558
2011-04-15 05:18:47 +00:00
Dan Gohman
4b96ea3283 Fix a hole in the definition of "dependence" used by trap values. Trap
values are also transmitted through branches which cause side effects to
be skipped altogether.

llvm-svn: 129404
2011-04-12 23:05:59 +00:00
NAKAMURA Takumi
940b366f8c docs: Canonicalize URLs.
llvm-svn: 129181
2011-04-09 02:13:37 +00:00
Nick Lewycky
753ef5bbf0 Pick better examples. "fpext float 3.1415 to double" won't parse because 3.1415
isn't an exact float. Also "fpext float 1.0 to float" is invalid IR because
it's not performing an extension.

llvm-svn: 128647
2011-03-31 18:20:19 +00:00
Cameron Zwarich
0f031dccab Change the signext language in LangRef to closer match zeroext.
llvm-svn: 127808
2011-03-17 14:21:58 +00:00
Cameron Zwarich
2bb1e45ea3 The x86-64 ABI says that a bool is only guaranteed to be sign-extended to a byte
rather than an int. Thankfully, this only causes LLVM to miss optimizations, not
generate incorrect code.

This just fixes the zext at the return. We still insert an i32 ZextAssert when
reading a function's arguments, but it is followed by a truncate and another i8
ZextAssert so it is not optimized.

llvm-svn: 127766
2011-03-16 22:20:18 +00:00
Duncan Sands
1e5b90b716 Clarify that the result of an srem is only guaranteed to have the same sign as the
left-hand-side if the result is non-zero.

llvm-svn: 127156
2011-03-07 09:12:24 +00:00
Bill Wendling
e65e2ba6c4 Small cleanup.
llvm-svn: 126821
2011-03-02 02:17:11 +00:00
Nadav Rotem
ab7cf630f4 Enable support for vector sext and trunc:
Limit the folding of any_ext and sext  into the load operation to scalars.
Limit the active-bits trunc optimization to scalars.
Document vector trunc and vector sext in LangRef.

Similar to commit 126080 (for enabling zext).

llvm-svn: 126424
2011-02-24 21:01:34 +00:00
Nadav Rotem
1660c0bc25 Fix 9267; Add vector zext support.
The DAGCombiner folds the zext into complex load instructions. This patch
prevents this optimization on vectors since none of the supported targets
knows how to perform load+vector_zext in one instruction.

llvm-svn: 126080
2011-02-20 12:37:50 +00:00
Chris Lattner
6fbe8f23a6 fix typo
llvm-svn: 125192
2011-02-09 16:44:44 +00:00
Chris Lattner
2fd09e3397 implement .ll and .bc support for nsw/nuw on shl and exact on lshr/ashr.
Factor some code better.

llvm-svn: 125006
2011-02-07 16:40:21 +00:00
Chris Lattner
7b6a968f5d enhance vmcore to know that udiv's can be exact, and add a trivial
instcombine xform to exercise this.

Nothing forms exact udivs yet though.  This is progress on PR8862

llvm-svn: 124992
2011-02-06 21:44:57 +00:00
Nick Lewycky
9fe6ef1bed Most browsers eliminate whitespace between anchor tags. Force whitespace with
&nbsp; so that the code reads properly.

llvm-svn: 124514
2011-01-29 01:09:53 +00:00
Rafael Espindola
fde74c53b6 Add a clarification about merging constants with and without unnamed_addr.
llvm-svn: 123530
2011-01-15 08:20:57 +00:00
Rafael Espindola
9f526bcf4d First step in fixing PR8927:
Add a unnamed_addr bit to global variables and functions. This will be used
to indicate that the address is not significant and therefore the constant
or function can be merged with others.

If an optimization pass can show that an address is not used, it can set this.

Examples of things that can have this set by the FE are globals created to
hold string literals and C++ constructors.

Adding unnamed_addr to a non-const global should have no effect unless
an optimization can transform that global into a constant.

Aliases are not allowed to have unnamed_addr since I couldn't figure
out any use for it.

llvm-svn: 123063
2011-01-08 16:42:36 +00:00
Tobias Grosser
4f458bffaa Integers are primitive types. Update the documentation to state this
This was done for label, void, floating point, x86mmx, metadata,
just not integer.

llvm-svn: 122606
2010-12-28 20:29:31 +00:00
Frits van Bommel
96efe38470 Clarify some of the differences between indexing with getelementptr and indexing with insertvalue/extractvalue.
llvm-svn: 120957
2010-12-05 20:54:38 +00:00
Nick Lewycky
87f97b60f8 Make @llvm.invariant.start not be readonly, so that it has side-effects. This
unbreaks test/Transforms/InstCombine/invariant.ll which was broken by r120382.
This is a fix-forward to do what I think Chris intended.

llvm-svn: 120388
2010-11-30 04:13:41 +00:00
Chris Lattner
d4da93abb1 a byval argument without an align can have an arbitrary alignment
requirement on the input pointer.

llvm-svn: 119914
2010-11-20 23:49:06 +00:00
Chris Lattner
5faff99d84 With the newly simplified SourceMgr interfaces and the generalized
SrcMgrDiagHandler, we can improve clang diagnostics for inline asm:
instead of reporting them on a source line of the original line,
we can report it on the correct line wherever the string literal came
from. For something like this:

void foo() {
  asm("push %rax\n"
      ".code32\n");
}

we used to get this: (note that the line in t.c isn't helpful)

t.c:4:7: error: warning: ignoring directive for now
  asm("push %rax\n"
      ^
<inline asm>:2:1: note: instantiated into assembly here
.code32
^

now we get:

t.c:5:8: error: warning: ignoring directive for now
      ".code32\n"
       ^
<inline asm>:2:1: note: instantiated into assembly here
.code32
^

Note that we're pointing to line 5 properly now.

llvm-svn: 119488
2010-11-17 08:20:42 +00:00
Bill Wendling
bead915338 Random cleanups and format changes.
llvm-svn: 117428
2010-10-27 01:07:41 +00:00
Charles Davis
3f1683a2ce Make the description of the hotpatch attribute even more generic. Spotted by
Michael Spencer.

llvm-svn: 117286
2010-10-25 19:07:39 +00:00
Charles Davis
96b28d2fba Make hotpatch attribute description a little less Wintel-specific.
llvm-svn: 117267
2010-10-25 16:29:03 +00:00
Charles Davis
42270b5d54 Add a new 'hotpatch' attribute. This attribute will insert a two-byte no-op
instruction at the beginning of each function that has the attribute, allowing
the function to be easily hooked and/or patched.

llvm-svn: 117264
2010-10-25 15:37:09 +00:00
Chris Lattner
c2bd6d02e5 clarify that zero sized vectors are illegal, PR8340
llvm-svn: 116167
2010-10-10 18:20:35 +00:00
Dale Johannesen
80b0b36c10 Fix pasto.
llvm-svn: 115261
2010-10-01 01:07:02 +00:00
Dale Johannesen
e6f908a6ab Add some doc for the x86mmx type.
llvm-svn: 115255
2010-10-01 00:48:59 +00:00
Chris Lattner
ecf276b787 remove unions from LLVM IR. They are severely buggy and not
being actively maintained, improved, or extended.

llvm-svn: 112356
2010-08-28 04:09:24 +00:00
Bill Wendling
163660135e Create the new linker type "linker_private_weak_def_auto".
It's similar to "linker_private_weak", but it's known that the address of the
object is not taken. For instance, functions that had an inline definition, but
the compiler decided not to inline it. Note, unlike linker_private and
linker_private_weak, linker_private_weak_def_auto may have only default
visibility.  The symbols are removed by the linker from the final linked image
(executable or dynamic library).

llvm-svn: 111684
2010-08-20 22:05:50 +00:00
Chris Lattner
982a804b20 fix a broken link
llvm-svn: 111326
2010-08-17 23:26:04 +00:00
Chris Lattner
c61aa15b46 add some &nbsp;'s to a pre to avoid newlines being eaten
and the formatting being thrown off.  I admit to not knowing
what is going on here.

llvm-svn: 111249
2010-08-17 17:13:42 +00:00
John Criswell
bc5393a5fe Grammar cop pullover: Corrected and improved some grammar in the description of
the llvm.memset() intrinsic family.
No content changes.

llvm-svn: 109863
2010-07-30 16:30:28 +00:00
Dan Gohman
fc3ee085a0 Disallow null as a named metadata operand.
Make MDNode::destroy private.
Fix the one thing that used MDNode::destroy, outside of MDNode itself.

One should never delete or destroy an MDNode explicitly. MDNodes
implicitly go away when there are no references to them (implementation
details aside).

llvm-svn: 109028
2010-07-21 18:54:18 +00:00
Dan Gohman
546332a032 Fix the Named Metadata example to make it clear which specific
construct is the named metadata.

llvm-svn: 108263
2010-07-13 19:48:13 +00:00
Benjamin Kramer
9af04e360e HTML cleanup and validation.
llvm-svn: 108239
2010-07-13 12:26:09 +00:00
Duncan Sands
710b57b4b1 When doing sext/zext of constants, the target type must be strictly
wider than the source type.  Correct LangRef.

llvm-svn: 108238
2010-07-13 12:06:14 +00:00
Dan Gohman
226e208014 sdiv overflow is outright undefined behavior, with or without the
'exact' keyword. Thanks to nlewycky for pointing this out!

llvm-svn: 108064
2010-07-11 00:08:34 +00:00
John McCall
a59e143fec Closing tags start with slashes.
llvm-svn: 107699
2010-07-06 21:07:14 +00:00
Chris Lattner
3139b75beb minor typo
llvm-svn: 107696
2010-07-06 20:51:35 +00:00
Nick Lewycky
529cb5fcd1 Alphabetize the list of function parameters.
llvm-svn: 107680
2010-07-06 18:24:09 +00:00
Dan Gohman
33f0f11376 Note the relationship between C99 restrict and LLVM noalias, and
clarify a few other things.

llvm-svn: 107659
2010-07-06 15:26:33 +00:00
Dan Gohman
4848c9631b Describe which dependencies are relevant to noalias, and document how
AliasAnalyses have the choice to respect noalias.

llvm-svn: 107544
2010-07-02 23:46:54 +00:00
Dan Gohman
7a6a35dbf7 Add some html anchors, to allow attributes to be linked to directly.
llvm-svn: 107538
2010-07-02 23:18:08 +00:00
Dan Gohman
04beeefa61 Reword the definition of the noalias attribute. The intention is for
the noalias argument on function attributes be usable to model the
C99 restrict keyword on arguments, and to allow AliasAnalysis to
consider a noalias-attributed argument to be an "identified object".

To support this, refactor a new "based on" concept out of the current
pointer aliasing "associated" concept. This "based on" concept is very
similar to (though it is not identical with) the "based on" concept
in C99.

Also, reword the definition of NoAlias to more closely describe the
concept that the optimizer uses.

llvm-svn: 107495
2010-07-02 18:41:32 +00:00
Bill Wendling
90b6422f2f Implement the "linker_private_weak" linkage type. This will be used for
Objective-C metadata types which should be marked as "weak", but which the
linker will remove upon final linkage. However, this linkage isn't specific to
Objective-C.

For example, the "objc_msgSend_fixup_alloc" symbol is defined like this:

      .globl l_objc_msgSend_fixup_alloc
      .weak_definition l_objc_msgSend_fixup_alloc
      .section __DATA, __objc_msgrefs, coalesced
      .align 3
l_objc_msgSend_fixup_alloc:
       .quad   _objc_msgSend_fixup
       .quad   L_OBJC_METH_VAR_NAME_1

This is different from the "linker_private" linkage type, because it can't have
the metadata defined with ".weak_definition".

Currently only supported on Darwin platforms.

llvm-svn: 107433
2010-07-01 21:55:59 +00:00
Bill Wendling
59ef9bcc6d Revert r107205 and r107207.
llvm-svn: 107215
2010-06-29 22:34:52 +00:00
Bill Wendling
462de20dd8 Improve explanation.
llvm-svn: 107207
2010-06-29 21:41:58 +00:00
Bill Wendling
05a4c0b1f2 Introducing the "linker_weak" linkage type. This will be used for Objective-C
metadata types which should be marked as "weak", but which the linker will
remove upon final linkage. For example, the "objc_msgSend_fixup_alloc" symbol is
defined like this:

       .globl l_objc_msgSend_fixup_alloc
       .weak_definition l_objc_msgSend_fixup_alloc
       .section __DATA, __objc_msgrefs, coalesced
       .align 3
l_objc_msgSend_fixup_alloc:
        .quad   _objc_msgSend_fixup
        .quad   L_OBJC_METH_VAR_NAME_1

This is different from the "linker_private" linkage type, because it can't have
the metadata defined with ".weak_definition".

llvm-svn: 107205
2010-06-29 21:24:00 +00:00
Dan Gohman
40c17ca0db Minor clarification.
llvm-svn: 106234
2010-06-17 19:23:50 +00:00
Nick Lewycky
2896d590c0 Document aggregate operation constant expressions.
llvm-svn: 105098
2010-05-29 06:44:15 +00:00
Dale Johannesen
3dde3fe642 Fix Data Layout description of floating point.
llvm-svn: 104993
2010-05-28 18:54:47 +00:00
Dan Gohman
5e04f2df0b Fix more whitespace to be consistent with AsmPrinter.
llvm-svn: 104963
2010-05-28 17:13:49 +00:00
Dan Gohman
49590bf7cd Fix whitespace to be more consistent with AsmPrinter's style.
llvm-svn: 104962
2010-05-28 17:07:41 +00:00
Dan Gohman
bcee12027f Eliminate the restriction that the array size in an alloca must be i32.
This will help reduce the amount of casting required on 64-bit targets.

llvm-svn: 104911
2010-05-28 01:14:11 +00:00
Dan Gohman
bbac7ffe10 Fix a missing quote.
llvm-svn: 104750
2010-05-26 21:56:15 +00:00
mike-m
3baf2ffb17 Revert r103213. It broke several sections of live website.
llvm-svn: 103219
2010-05-07 00:28:04 +00:00
mike-m
6b8861e9f6 Overhauled llvm/clang docs builds. Closes PR6613.
NOTE: 2nd part changeset for cfe trunk to follow.

*** PRE-PATCH ISSUES ADDRESSED

- clang api docs fail build from objdir
- clang/llvm api docs collide in install PREFIX/
- clang/llvm main docs collide in install
- clang/llvm main docs have full of hard coded destination
  assumptions and make use of absolute root in static html files;
  namely CommandGuide tools hard codes a website destination
  for cross references and some html cross references assume
  website root paths

*** IMPROVEMENTS

- bumped Doxygen from 1.4.x -> 1.6.3
- splits llvm/clang docs into 'main' and 'api' (doxygen) build trees
- provide consistent, reliable doc builds for both main+api docs
- support buid vs. install vs. website intentions
- support objdir builds
- document targets with 'make help'
- correct clean and uninstall operations
- use recursive dir delete only where absolutely necessary
- added call function fn.RMRF which safeguards against botched 'rm -rf';
  if any target (or any variable is evaluated) which attempts
  to remove any dirs which match a hard-coded 'safelist', a verbose
  error will be printed and make will error-stop.

llvm-svn: 103213
2010-05-06 23:45:43 +00:00
Chris Lattner
9a067dd51f Fix some ..'s
llvm-svn: 103134
2010-05-05 23:29:09 +00:00
Dan Gohman
85561664d5 Update this comment to note its relationship with the "happens-before"
concept in the proposed memory model changes.

llvm-svn: 102911
2010-05-03 14:59:34 +00:00
Dan Gohman
62ea5f981d Delete this comment. The behavior of struct loads and stores with
respect to padding bytes isn't something that the dependence text
needs to spell out.

llvm-svn: 102910
2010-05-03 14:58:14 +00:00
Dan Gohman
cb5781826c Describe invoke instruction dependencies. Generalize the text for
terminator instructions so that it applies to all terminators with
multiple successors, including invoke.

llvm-svn: 102909
2010-05-03 14:55:22 +00:00
Dan Gohman
55e93b2802 Say "operations" instead of "instructions", as nsw can be applied to
constant expressions as well as instructions.

llvm-svn: 102908
2010-05-03 14:51:43 +00:00
David Chisnall
8bcbd32d28 Fixed @ctor / @dtor the wrong way around in last commit.
llvm-svn: 102741
2010-04-30 19:27:35 +00:00
David Chisnall
976f45eac9 Added a brief explanation of @llvm.global_{c,d}tors.
llvm-svn: 102740
2010-04-30 19:23:49 +00:00
Dan Gohman
9a9dc98868 Rewrite the section on trap values to contain a generic description
of dependence and define trap values in terms of dependence, instead
of trying to cover the concept with a flurry of ad-hoc rules.

The dependence model isn't complete yet, but it's already much more
rigorous than the description it replaces.

llvm-svn: 102479
2010-04-28 00:49:41 +00:00
Dan Gohman
f8eeafd9f1 Fix spelling errors.
llvm-svn: 102478
2010-04-28 00:36:01 +00:00
Chris Lattner
22d3b3b3b7 further clarify alignment of globals, fix instcombine
to not increase the alignment of globals with an assigned
alignment and section.

llvm-svn: 102476
2010-04-28 00:31:12 +00:00
Chris Lattner
3b199c318b improve the global variable alignment description.
it is not generally valid for targets to overalign
them when an alignment is specified.

llvm-svn: 102474
2010-04-28 00:13:42 +00:00
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