595 Commits

Author SHA1 Message Date
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