Eli Friedman
36ef5fd140
Update instcombine for atomic load/store.
...
llvm-svn: 137664
2011-08-15 22:09:40 +00:00
Frits van Bommel
775ac35cf1
Shorten some expressions by using ArrayRef::slice().
...
llvm-svn: 135910
2011-07-25 15:13:01 +00:00
Jay Foad
6513dac6e2
Convert GetElementPtrInst to use ArrayRef.
...
llvm-svn: 135904
2011-07-25 09:48:08 +00:00
Chris Lattner
e1fe7061ce
land David Blaikie's patch to de-constify Type, with a few tweaks.
...
llvm-svn: 135375
2011-07-18 04:54:35 +00:00
Eli Friedman
6937c422a0
Final step of instcombine debuginfo; switch a couple more places over to InsertNewInstWith, and use setDebugLoc for the cases which can't be easily handled by the automated mechanisms.
...
llvm-svn: 132167
2011-05-27 00:19:40 +00:00
Duncan Sands
4c4f3dbea6
Stop trying to have instcombine preserve LCSSA form: this was not
...
effective in avoiding recomputation of LCSSA form; the widespread
use of instsimplify (which looks through phi nodes) means it was
not preserving LCSSA form anyway; and instcombine is no longer
scheduled in the middle of the loop passes so this doesn't matter
anymore.
llvm-svn: 130301
2011-04-27 10:55:12 +00:00
Frits van Bommel
09c24968b1
Rename a misleadingly-named variable.
...
llvm-svn: 129644
2011-04-16 14:32:34 +00:00
Jay Foad
e80e7f1de5
Fix bug when checking phi operands in InstCombiner::visitPHINode(),
...
found by code inspection.
llvm-svn: 129641
2011-04-16 14:17:37 +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
Jay Foad
53632b7c03
Remove PHINode::reserveOperandSpace(). Instead, add a parameter to
...
PHINode::Create() giving the (known or expected) number of operands.
llvm-svn: 128537
2011-03-30 11:28:46 +00:00
Jay Foad
dc5a008237
(Almost) always call reserveOperandSpace() on newly created PHINodes.
...
llvm-svn: 128535
2011-03-30 11:19:20 +00:00
Jay Foad
bfb0312e40
Make more use of PHINode::getNumIncomingValues().
...
llvm-svn: 128406
2011-03-28 13:03:10 +00:00
Chris Lattner
f9501b79f9
have instcombine preserve nsw/nuw/exact when sinking
...
common operations through a phi.
llvm-svn: 125790
2011-02-17 23:01:49 +00:00
Chris Lattner
fd397180f3
fix typo
...
llvm-svn: 125787
2011-02-17 22:32:54 +00:00
Chris Lattner
fc8ee641a2
fix instcombine merging GEPs through a PHI to only make the
...
result inbounds if all of the inputs are inbounds.
llvm-svn: 125785
2011-02-17 22:21:26 +00:00
Duncan Sands
617030ad18
Teach InstructionSimplify about phi nodes. I chose to have it simply
...
offload the work to hasConstantValue rather than do something more
complicated (such handling mutually recursive phis) because (1) it is
not clear it is worth it; and (2) if it is worth it, maybe such logic
would be better placed in hasConstantValue. Adjust some GVN tests
which are now cleaned up much further (eg: all phi nodes are removed).
llvm-svn: 119043
2010-11-14 13:30:18 +00:00
Gabor Greif
04d1ca9e95
cache result of operator*
...
llvm-svn: 108147
2010-07-12 14:15:58 +00:00
Chris Lattner
789121d6e2
fix PR6512, a case where instcombine would incorrectly merge loads
...
from different addr spaces.
llvm-svn: 97813
2010-03-05 18:53:28 +00:00
Duncan Sands
1b33dd3c83
There are two ways of checking for a given type, for example isa<PointerType>(T)
...
and T->isPointerTy(). Convert most instances of the first form to the second form.
Requested by Chris.
llvm-svn: 96344
2010-02-16 11:11:14 +00:00
Benjamin Kramer
cd6b749245
Add newline at EOF.
...
llvm-svn: 92727
2010-01-05 13:32:48 +00:00
Chris Lattner
23ff3ce8eb
split PHI node stuff out to InstCombinePHI.cpp
...
llvm-svn: 92682
2010-01-05 05:31:55 +00:00