Devang Patel
bd68d42843
Map MDNode correctly.
...
A non function local MDNode can have an operand which is cloned by MapValue().
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109117 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-22 16:35:00 +00:00
Gabor Greif
96f1d8ebdd
mass elimination of reliance on automatic iterator dereferencing
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109103 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-22 13:36:47 +00:00
Gabor Greif
945f1ab0a5
simplify
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109101 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-22 13:07:39 +00:00
Gabor Greif
efdf039aec
do not access arguments via low-level interface, do not multiply dereference use_iterators
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109100 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-22 13:04:32 +00:00
Gabor Greif
85e01df73d
pass dereferenced iterator to dyn_cast
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109099 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-22 11:48:35 +00:00
Gabor Greif
20361b9d4d
pass dereferenced iterator to dyn_cast
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109098 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-22 11:43:44 +00:00
Gabor Greif
a399781289
undo 80 column trespassing I caused
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109092 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-22 10:37:47 +00:00
Dan Gohman
17aa92c92a
Make NamedMDNode not be a subclass of Value, and simplify the interface
...
for creating and populating NamedMDNodes.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109061 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-21 23:38:33 +00:00
Owen Anderson
d13db2c59c
Fix batch of converting RegisterPass<> to INTIALIZE_PASS().
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@109045 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-21 22:09:45 +00:00
Dan Gohman
549979f550
Make this code a little more readable.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108968 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-20 23:49:44 +00:00
Dan Gohman
333a94765a
Use DebugLocs instead of MDNodes.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108967 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-20 23:49:05 +00:00
Dan Gohman
e336cbc450
Fix a typo.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108962 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-20 23:10:36 +00:00
Dan Gohman
7bc230ec6a
Don't look up the "dbg" metadata kind by name.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108961 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-20 23:09:34 +00:00
Dan Gohman
bda0252639
Use getDebugLoc and setDebugLoc instead of getDbgMetadata and setDbgMetadata,
...
avoiding MDNode overhead.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108909 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-20 20:09:07 +00:00
Dan Gohman
43ef3fbae1
Remember that the induction variable is always a PHINode and
...
use getIncomingValueForBlock instead of
LoopInfo::getCanonicalInductionVariableIncrement.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108865 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-20 17:18:52 +00:00
Owen Anderson
5f23a938b0
Tweak per Chris' comments.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108736 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-19 19:23:32 +00:00
Owen Anderson
d90290127b
Reimplement r108639 in InstCombine rather than DAGCombine.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108687 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-19 08:09:34 +00:00
Owen Anderson
7e3012c345
Another attempt at getting the clang self-host to like my instcombine patch.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108614 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-17 06:56:35 +00:00
Chris Lattner
49669e6d3a
eliminate unlockedRefineAbstractTypeTo, types are all per-llvmcontext,
...
so there is no locking involved in type refinement.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108553 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-16 20:50:13 +00:00
Dan Gohman
1e381fcd55
Reorder the contents of various getAnalysisUsage functions, eliminating
...
a redundant loopsimplify run from the default -O2 sequence.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108539 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-16 17:58:45 +00:00
Owen Anderson
835d425a16
Remove the rest of my instcombine changes. Back to the drawing board on this one.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108530 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-16 16:39:00 +00:00
Gabor Greif
a6aac4c5bc
eliminate CallInst::ArgOffset
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108522 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-16 09:38:02 +00:00
Nick Lewycky
394ce41b7f
Arrays and vectors with different numbers of elements are not equivalent.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108517 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-16 06:31:12 +00:00
Eric Christopher
de309a8b52
Also revert 108422, it's causing some test failures.
...
Working on testcases for Owen.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108494 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-16 01:36:12 +00:00
Dan Gohman
a9db129730
Don't merge uses when they are targetting fixup sites with
...
different widths. In a use with a narrower fixup, formulae
may be wider than the fixup, in which case the high bits
aren't necessarily meaningful, so it isn't safe to reuse
them for uses with wider fixups.
This fixes PR7618, though the testcase is too large for a
reasonable regression test, since it heavily dependes on
hitting LSR's heuristics in a certain way.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108455 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-15 20:24:58 +00:00
Dan Gohman
ef4308d6ba
Use dbgs() instead of errs() in a DEBUG.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108453 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-15 20:12:42 +00:00
Owen Anderson
11acba0470
Speculatively revert r108429 to fix the clang self-host.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108436 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-15 18:18:57 +00:00
Owen Anderson
40bf5e7a68
Per Chris' suggestion, get rid of the select canonicalization and just add
...
the corresponding or-icmp-and pattern. This has the added benefit of doing
the matching earlier, and thus being less susceptible to being confused by
earlier transforms.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108429 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-15 17:24:23 +00:00
Owen Anderson
2722dfa75d
Remove unneeded check, and correct style.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108427 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-15 16:38:22 +00:00
Dan Gohman
c88c1a4581
Watch out for a constant offset cancelling out a base register, forming
...
a zero. This situation arrises in Fortran code with induction variables
that start at 1 instead of 0. This fixes PR7651.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108424 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-15 15:14:45 +00:00
Owen Anderson
96fe621e07
Reapply r108378, with bugfixes, testcase, and improved comment formatting.
...
This now passes LIT, nighty test, and llvm-gcc bootstrap on my machine.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108422 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-15 15:00:23 +00:00
Nick Lewycky
706f50820c
This is a full sentence.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108418 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-15 06:51:22 +00:00
Nick Lewycky
664040a03c
Disable aliases on all platforms.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108417 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-15 06:48:56 +00:00
Chris Lattner
35a939b97d
make various clients of ReplaceAndSimplifyAllUses tolerate
...
it *changing* the things it replaces, not just causing them
to drop to null. There is no functionality change yet, but
this is required for a subsequent patch.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108414 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-15 06:06:04 +00:00
Eli Friedman
5e84e8e52a
Speculatively revert r108378; may be causing bootstrap failures.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108389 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-15 00:33:00 +00:00
Owen Anderson
bd129a7460
Add instcombine transforms to optimize tests of multiple bits of the same value into a single larger comparison.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108378 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-14 23:33:51 +00:00
Owen Anderson
e84178a0bd
Extend SimplifyCFG's common-destination folding heuristic to allow a single
...
"bonus" instruction to be speculatively executed. Add a heuristic to
ensure we're not tripping up out-of-order execution by checking that this bonus
instruction only uses values that were already guaranteed to be available.
This allows us to eliminate the short circuit in (x&1)&&(x&2).
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108351 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-14 19:52:16 +00:00
Chris Lattner
07c9b64719
revert r108320, I see the failures now...
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108322 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-14 06:16:35 +00:00
Chris Lattner
7e185af930
reapply benjamin's instcombine patch, I don't see anything wrong with it and can't repro any problems with a manual self-host.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108320 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-14 05:59:13 +00:00
Eric Christopher
f0193ed8de
Grammar.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108252 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-13 18:27:13 +00:00
Duncan Sands
d0d3ccc827
Handle the case of a tail recursion in which the tail call is followed
...
by a return that returns a constant, while elsewhere in the function
another return instruction returns a different constant. This is a
special case of accumulator recursion, so just generalize the existing
logic a bit.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108241 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-13 15:41:41 +00:00
Benjamin Kramer
c9fe6374b7
Nope, still breaks the release selfhost bots :(
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108153 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-12 16:38:48 +00:00
Benjamin Kramer
8fd437c43f
Reapply the "or" half of r108136, which seems to be less problematic.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108152 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-12 16:15:48 +00:00
Gabor Greif
a9b8338bfa
cache result of operator*
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108150 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-12 15:48:26 +00:00
Benjamin Kramer
e2d07b5208
Revert r108141 again, sigh.
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108148 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-12 14:42:04 +00:00
Gabor Greif
40119ceeec
cache result of operator*
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108147 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-12 14:15:58 +00:00
Gabor Greif
a53029b1fc
cache result of operator*
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108146 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-12 14:15:10 +00:00
Gabor Greif
65b9212d34
cache result of operator*
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108145 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-12 14:14:03 +00:00
Gabor Greif
aaaaa02a93
cache result of operator*
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108144 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-12 14:13:15 +00:00
Gabor Greif
b7df500063
cache results of operator*
...
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@108143 91177308-0d34-0410-b5e6-96231b3b80d8
2010-07-12 14:12:11 +00:00