Commit Graph

3510 Commits

Author SHA1 Message Date
Dan Gohman
34b3d993e4 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102479 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-28 00:49:41 +00:00
Dan Gohman
1c70c00c28 Fix spelling errors.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102478 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-28 00:36:01 +00:00
Chris Lattner
2d4b8ee1d9 further clarify alignment of globals, fix instcombine
to not increase the alignment of globals with an assigned
alignment and section.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102476 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-28 00:31:12 +00:00
Chris Lattner
ce99fa9e26 improve the global variable alignment description.
it is not generally valid for targets to overalign
them when an alignment is specified.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102474 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-28 00:13:42 +00:00
Chris Lattner
77640feed7 fix wordo
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102418 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-27 07:28:11 +00:00
Chris Lattner
de076819e4 remove some comments.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102417 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-27 06:57:10 +00:00
Dan Gohman
ae11c3f83e 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102399 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-26 23:36:52 +00:00
Jeffrey Yasskin
93e066d0e2 Consolidate the description of volatile operations, now that some of the
intrinsics have volatile semantics in addition to the load and store
instructions.  


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102384 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-26 21:21:24 +00:00
Dan Gohman
c30f6e1c89 Branching or switching on trap transfers imminent undefined behavior
onto control-dependent instructions.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102381 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-26 20:54:53 +00:00
Gabor Greif
28034cde44 add some typewriter tags
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102378 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-26 20:46:03 +00:00
Dan Gohman
c68ce066a5 Fix HTML errors that Jeffery Yasskin noticed.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102376 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-26 20:21:21 +00:00
Chris Lattner
095539f97c wrap some long lines.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102354 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-26 17:42:18 +00:00
Chris Lattner
7c8e7965e1 add GHC, thanks to David Terei
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102352 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-26 17:38:10 +00:00
Gabor Greif
e32adf53b2 another typo pointed out by sajd
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102319 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-25 21:30:22 +00:00
Gabor Greif
1440dbe4c2 fix two typos pointed out by sajd
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102318 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-25 21:27:54 +00:00
David Chisnall
8e0bd80e38 Added bullet about GNUstep Objective-C ABI support to the Clang section of the release notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102309 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-25 19:13:33 +00:00
Dan Gohman
698cbcb0a4 PHI nodes also do not necessarily return trap with a trap operand.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102278 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-24 22:15:58 +00:00
Nick Lewycky
1f048649e3 Fix typo.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102276 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-24 22:01:40 +00:00
Dan Gohman
27ef9976c2 Switch getelementptr inbounds and sdiv exact from undef to trap.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102175 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-23 15:23:32 +00:00
Dan Gohman
fff6c5332f 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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102140 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 23:14:21 +00:00
Chris Lattner
3a1d4cfc38 add macruby back
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102132 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 21:34:16 +00:00
Dan Gohman
9c675f14c1 Add a blurb about the new LSR.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102126 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 20:50:43 +00:00
Nick Lewycky
009364ebcf The -condprop pass has been deleted.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102125 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 20:48:34 +00:00
Dan Gohman
d64d12dfcb The post-RA scheduler is currently off by default on x86.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102124 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 20:47:28 +00:00
Douglas Gregor
f720a4edb0 Add some verbiage about Clang to the 2.7 release notes
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102121 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 20:42:40 +00:00
Jim Grosbach
41a776631d Add mention of ARM atomic builtin support
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102103 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 18:33:31 +00:00
Jim Grosbach
269e0fed84 Update ARM frame index scavenging description
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102101 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 18:28:43 +00:00
Chris Lattner
cb28286b7b remove dupe
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102100 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 18:26:17 +00:00
Chris Lattner
83cd35aff9 reword my incoherent babble into something that makes sense
from Wesley Peck!


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102096 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 17:39:38 +00:00
Chris Lattner
fb1a739202 two more projects.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102095 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 17:28:36 +00:00
Chris Lattner
cd062cd54c add some notes from Matthieu Moy!
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102093 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 17:25:00 +00:00
Chris Lattner
ca73cea8a2 improve tblgen doc, pointed out by Zhongxing.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102072 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 16:45:27 +00:00
Wesley Peck
1f433615b4 Fixing a typo in the "Clang project" section of the release notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102064 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 14:19:00 +00:00
Wesley Peck
a0c4484bce Small fix to the "Other Improvements and New Features" section of the release notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102063 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 13:53:54 +00:00
Wesley Peck
c0287baced Fixing small typos in the "New Useful APIs" section of the release notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102062 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 13:50:46 +00:00
Wesley Peck
9e385b1367 Fixing small typos in the "ARM Target Improvements" section of the release notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102061 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 13:43:14 +00:00
Wesley Peck
640604ae63 Rewording the "generated debug information" paragraph in the "Interpreter and JIT Improvements" section of the release notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102060 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 13:36:27 +00:00
Wesley Peck
68d1fe9700 Reworking the wording of the "target data string" paragraph in the "Optimizer Improvments" section of the release notes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102059 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 13:28:34 +00:00
Gabor Greif
ed38745a2a <pre> seems to close <p>
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102057 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 10:25:23 +00:00
Gabor Greif
ee2187a38d the validator coughed up some problems, most of them fixed
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102056 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 10:21:43 +00:00
Gabor Greif
c8b3af9f5f shorten link
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102055 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 10:11:24 +00:00
Chris Lattner
f455529b9e static analyzer has its own section
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102054 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 06:39:56 +00:00
Chris Lattner
8cdd7939ad add mc and static analyzer blurbs.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102053 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 06:38:11 +00:00
Chris Lattner
914ce46040 another checkpoint.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102052 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 06:28:20 +00:00
Chris Lattner
7b91eda0de various updates.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102051 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-22 05:41:35 +00:00
Duncan Sands
cb9dda6946 Dragonegg will be released along side llvm-2.7.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@102001 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-21 13:51:48 +00:00
Chris Lattner
a54c1f70b8 final hacking for tonight, still more to go.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101995 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-21 06:42:24 +00:00
Chris Lattner
450a31edde continue the process of detangling this.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101992 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-21 06:23:40 +00:00
Chris Lattner
b7c85b49a4 rough pass moving stuff into relevant sections, still much
editing to do.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101987 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-21 05:17:40 +00:00
Chris Lattner
b136f09deb remove ldc, rubinious, macruby, icedtea, llvm-lua, which
don't have updates for 2.7.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@101985 91177308-0d34-0410-b5e6-96231b3b80d8
2010-04-21 04:28:21 +00:00