Commit Graph

743 Commits

Author SHA1 Message Date
NAKAMURA Takumi aa3d6242cf 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 fc8d930f6e 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 0ab5e2cded 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 c8454ee995 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 ca46f5a3b5 docs: Canonicalize URLs.
llvm-svn: 129181
2011-04-09 02:13:37 +00:00
Nick Lewycky 9feca67182 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 341c36dc8b Change the signext language in LangRef to closer match zeroext.
llvm-svn: 127808
2011-03-17 14:21:58 +00:00
Cameron Zwarich ac106273d4 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 2769c6e0dc 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 c0e1067e4d Small cleanup.
llvm-svn: 126821
2011-03-02 02:17:11 +00:00
Nadav Rotem 502f1b943f 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 25f2ac948b 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 f10dfdc77a fix typo
llvm-svn: 125192
2011-02-09 16:44:44 +00:00
Chris Lattner a676c0fc77 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 35315d065b 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 fea7ddc735 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 f1ed781aea Add a clarification about merging constants with and without unnamed_addr.
llvm-svn: 123530
2011-01-15 08:20:57 +00:00
Rafael Espindola 45e6c195d7 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 4c8c95b099 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 7cf63ace18 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 2965d3e3cd 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 d78dbee431 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 79ffdc7581 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 6bbe0912c3 Random cleanups and format changes.
llvm-svn: 117428
2010-10-27 01:07:41 +00:00
Charles Davis 742052526a 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 1b2d372b9f Make hotpatch attribute description a little less Wintel-specific.
llvm-svn: 117267
2010-10-25 16:29:03 +00:00
Charles Davis 22fe18625d 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 f11031a68c clarify that zero sized vectors are illegal, PR8340
llvm-svn: 116167
2010-10-10 18:20:35 +00:00
Dale Johannesen b1f0ff1d66 Fix pasto.
llvm-svn: 115261
2010-10-01 01:07:02 +00:00
Dale Johannesen 33e5c354e5 Add some doc for the x86mmx type.
llvm-svn: 115255
2010-10-01 00:48:59 +00:00
Chris Lattner 13ee795c42 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 578ee4070c 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 249b976ed2 fix a broken link
llvm-svn: 111326
2010-08-17 23:26:04 +00:00
Chris Lattner 54a7be757b 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 ad05ae483f 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 093cb79d4b 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 58cd65f2fe 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 79698be162 HTML cleanup and validation.
llvm-svn: 108239
2010-07-13 12:26:09 +00:00
Duncan Sands a522e563a8 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 e501ff7cc6 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 72ed8908ee Closing tags start with slashes.
llvm-svn: 107699
2010-07-06 21:07:14 +00:00
Chris Lattner 5eff9ca26e minor typo
llvm-svn: 107696
2010-07-06 20:51:35 +00:00
Nick Lewycky 14b58dac8d Alphabetize the list of function parameters.
llvm-svn: 107680
2010-07-06 18:24:09 +00:00
Dan Gohman 6c858db40c 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 de25629e4f 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 3770af5852 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 df12d08b8e 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 03bcd6ecc8 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 3632171750 Revert r107205 and r107207.
llvm-svn: 107215
2010-06-29 22:34:52 +00:00
Bill Wendling 7d7a50a0ae Improve explanation.
llvm-svn: 107207
2010-06-29 21:41:58 +00:00
Bill Wendling 1767723dbe 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 4eb4719432 Minor clarification.
llvm-svn: 106234
2010-06-17 19:23:50 +00:00
Nick Lewycky 9ab9a7fb29 Document aggregate operation constant expressions.
llvm-svn: 105098
2010-05-29 06:44:15 +00:00
Dale Johannesen ce52285c38 Fix Data Layout description of floating point.
llvm-svn: 104993
2010-05-28 18:54:47 +00:00
Dan Gohman aabfdb39af Fix more whitespace to be consistent with AsmPrinter.
llvm-svn: 104963
2010-05-28 17:13:49 +00:00
Dan Gohman d6a6f61fdb Fix whitespace to be more consistent with AsmPrinter's style.
llvm-svn: 104962
2010-05-28 17:07:41 +00:00
Dan Gohman 2140a74979 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 e58f7b3c76 Fix a missing quote.
llvm-svn: 104750
2010-05-26 21:56:15 +00:00
mike-m f375e9a092 Revert r103213. It broke several sections of live website.
llvm-svn: 103219
2010-05-07 00:28:04 +00:00
mike-m e08af303a6 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 966a382ae7 Fix some ..'s
llvm-svn: 103134
2010-05-05 23:29:09 +00:00
Dan Gohman 3513ea5c1a 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 a9601bb6fb 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 7292a759b4 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 ac355aaf9e 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 b492b81a94 Fixed @ctor / @dtor the wrong way around in last commit.
llvm-svn: 102741
2010-04-30 19:27:35 +00:00
David Chisnall a9d4a6fb28 Added a brief explanation of @llvm.global_{c,d}tors.
llvm-svn: 102740
2010-04-30 19:23:49 +00:00
Dan Gohman 2f1ae06c45 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 61110aed26 Fix spelling errors.
llvm-svn: 102478
2010-04-28 00:36:01 +00:00
Chris Lattner 4bd85e47bf 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 78e00bcb76 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 b8b85c1ddb 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 5d284ae8a0 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 48a2588be4 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 b2a709be07 Fix HTML errors that Jeffery Yasskin noticed.
llvm-svn: 102376
2010-04-26 20:21:21 +00:00
Dan Gohman 283a350f4d 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 5725580bb6 Switch getelementptr inbounds and sdiv exact from undef to trap.
llvm-svn: 102175
2010-04-23 15:23:32 +00:00
Dan Gohman ffc9a6b4ac 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 626b02470b Pointed out by housel on #llvm.
llvm-svn: 101395
2010-04-15 20:35:54 +00:00
Chris Lattner 685db9d59e typo
llvm-svn: 100738
2010-04-08 00:54:34 +00:00
Chris Lattner bd4ca62c80 document isvolatile etc.
llvm-svn: 100737
2010-04-08 00:53:57 +00:00
Mon P Wang 508127b5fd Update langref for memcpy, memmove, and memset
llvm-svn: 100611
2010-04-07 06:35:53 +00:00
Chris Lattner 51065568cd 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 022a9fb269 various cleanups from daniel
llvm-svn: 98528
2010-03-15 04:12:21 +00:00
Chris Lattner bbd8bd3257 tidy up and expound more on how half-float works.
llvm-svn: 98524
2010-03-14 23:03:31 +00:00
Anton Korobeynikov cd4dd9c1db Document fp16 intrinsics
llvm-svn: 98505
2010-03-14 18:42:47 +00:00
Chris Lattner a179e4d0a8 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 5967649780 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 9984bd6092 Add metadata example.
llvm-svn: 97764
2010-03-04 23:44:48 +00:00
Chris Lattner 47f2a839ec attributes are not part of types anymore, patch by James Woodyatt!
llvm-svn: 97557
2010-03-02 06:36:51 +00:00
Dan Gohman 6232f73c7b 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 a269a0a667 Fix spelling.
llvm-svn: 97447
2010-03-01 17:41:39 +00:00
Bill Wendling bc4024f72c Fix HTML.
llvm-svn: 97170
2010-02-25 21:23:24 +00:00
Dan Gohman 1ad1499d14 Fix a typo.
llvm-svn: 97144
2010-02-25 16:51:31 +00:00
Dan Gohman 8848111952 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 8ad777dc75 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 9641d06809 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 392be58cad 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 be5557e86b 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 74bb06c0f0 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 c2f8f16162 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 8444d7536c Remove the InlineHint attribute. There are no current or planned
users.

llvm-svn: 93558
2010-01-15 21:36:30 +00:00
Chris Lattner 97257f8e40 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 d1a8969dd2 Add top level section for named metadata.
llvm-svn: 93172
2010-01-11 19:35:55 +00:00
Jeffrey Yasskin f991bbb0c1 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 b867746a05 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 0de4caa57b improve documentation for linkonce to be less confusing.
llvm-svn: 93066
2010-01-09 19:15:14 +00:00
Eric Christopher 3070e16e6f Grammar thinko.
llvm-svn: 93027
2010-01-08 21:42:39 +00:00
Devang Patel e307348325 NamedMDNode is a collection MDNodes.
llvm-svn: 92761
2010-01-05 20:41:31 +00:00
Eric Christopher 31e39bd3d4 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 455c5776e2 More updates to objectsize intrinsic docs.
llvm-svn: 90644
2009-12-05 02:46:03 +00:00
Eric Christopher 8aa46bc6fd Update per Bill's comments. Work in progress.
llvm-svn: 90271
2009-12-01 22:28:41 +00:00
Eric Christopher 7348432ade First pass at llvm.objectsize documentation.
llvm-svn: 90116
2009-11-30 08:03:53 +00:00
Duncan Sands 31c0e0ee35 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 ee7425cc56 These code generator limitations have been removed.
llvm-svn: 90003
2009-11-27 12:33:22 +00:00
Dan Gohman c74bc28297 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 66c4d61010 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 a381effe72 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 33fef7e4e5 Add missing end-tag.
llvm-svn: 85769
2009-11-02 00:25:26 +00:00
Bill Wendling 7f4a336785 Some formatting changes.
llvm-svn: 85768
2009-11-02 00:24:16 +00:00
Chris Lattner aa99c94e2a 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 b2c0e243c5 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 03ab4dcff9 use metavariable <result> instead of SSA name %result for consistency
llvm-svn: 85388
2009-10-28 13:14:50 +00:00
Gabor Greif bd0328f668 ooops, SSA name should not be part of the link
llvm-svn: 85387
2009-10-28 13:05:07 +00:00
Gabor Greif f50fd57543 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 d04cb6d0fa rename indbr -> indirectbr to appease the residents of #llvm.
llvm-svn: 85351
2009-10-28 00:19:10 +00:00
Chris Lattner b4f2a24363 typo
llvm-svn: 85322
2009-10-27 21:52:54 +00:00
Chris Lattner 5c5f0ac362 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 da37b30b21 improvements from gabor.
llvm-svn: 85320
2009-10-27 21:44:20 +00:00
Chris Lattner 2bfd320226 fix things pointed out by Dan!
llvm-svn: 85310
2009-10-27 21:19:13 +00:00
Chris Lattner e4801f7844 document the forthcoming blockaddress constant.
llvm-svn: 85306
2009-10-27 21:01:34 +00:00
Chris Lattner 6506d6c3d7 fix pasto pointed out by Rafael
llvm-svn: 85294
2009-10-27 20:27:24 +00:00
Chris Lattner 3ed871fe62 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 d20fd59e29 Fix reversed logic spotted by Owen Anderson.
llvm-svn: 85251
2009-10-27 16:56:58 +00:00
Victor Hernandez a70c6dff97 Remove all references to MallocInst and FreeInst
llvm-svn: 85177
2009-10-26 23:44:29 +00:00
Dale Johannesen 1cfb958b00 Rename msasm to alignstack per review.
llvm-svn: 84795
2009-10-21 23:28:00 +00:00
Dale Johannesen 63c94fe1e2 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 9bc890425a 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 6f7d8347c1 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 0f4203861f Documentation: Perform automated correction of common typos.
llvm-svn: 83849
2009-10-12 14:46:08 +00:00
Chris Lattner 80d73c7ee7 fix broken anchors.
llvm-svn: 83715
2009-10-10 18:26:06 +00:00
Nick Lewycky 93e06a57c9 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 14d1cccc2b 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 84a1eeb7ed 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 722212d1a0 Revise C library functions description to be vaguer, per Chris.
llvm-svn: 82776
2009-09-25 17:04:42 +00:00
Dale Johannesen 68f971b1d6 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 92ada5dc52 more typos
llvm-svn: 81499
2009-09-11 01:49:31 +00:00
Chris Lattner 10ff0c1862 another typo
llvm-svn: 81243
2009-09-08 19:45:34 +00:00
Chris Lattner 6760e54c92 fix a couple typos pointed out by edwin and duncan
llvm-svn: 81219
2009-09-08 15:13:16 +00:00
Chris Lattner a34a718c4b add some more notes.
llvm-svn: 81170
2009-09-07 23:33:52 +00:00