aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Transforms/InstCombine
Commit message (Expand)AuthorAgeFilesLines
* InstCombine: Fix transform to use the swapped predicate.Benjamin Kramer2011-03-311-2/+2
* InstCombine: fold fcmp (fneg x), (fneg y) -> fcmp x, yBenjamin Kramer2011-03-311-0/+5
* InstCombine: fold fcmp pred (fneg x), C -> fcmp swap(pred) x, -CBenjamin Kramer2011-03-311-0/+8
* InstCombine: Shrink "fcmp (fpext x), C" to "fcmp x, C" if C can be losslessly...Benjamin Kramer2011-03-311-0/+34
* InstCombine: fold fcmp (fpext x), (fpext y) -> fcmp x, y.Benjamin Kramer2011-03-311-0/+7
* InstCombine: If the divisor of an fdiv has an exact inverse, turn it into an ...Benjamin Kramer2011-03-301-0/+12
* Remove PHINode::reserveOperandSpace(). Instead, add a parameter toJay Foad2011-03-304-16/+10
* (Almost) always call reserveOperandSpace() on newly created PHINodes.Jay Foad2011-03-302-0/+2
* InstCombine: Add a few missing combines for ANDs and ORs of sign bit tests.Benjamin Kramer2011-03-291-0/+24
* Remove tabs I accidentally added.Nick Lewycky2011-03-281-15/+15
* Make more use of PHINode::getNumIncomingValues().Jay Foad2011-03-282-5/+5
* Add some debug output when -instcombine uses RAUW. This can make debug output...Frits van Bommel2011-03-271-1/+4
* Teach the transformation that moves binary operators around selects to preserveNick Lewycky2011-03-271-8/+22
* Use APInt's umul_ov instead of rolling our own overflow detection.Benjamin Kramer2011-03-271-5/+6
* Add a small missed optimization: turn X == C ? X : Y into X == C ? C : Y. ThisNick Lewycky2011-03-271-0/+13
* Try to not lose variable's debug info during instcombine.Devang Patel2011-03-171-0/+4
* If we don't know how long a string is we can't fold an _chk version to theEric Christopher2011-03-151-3/+7
* This case is solved by Scalar Replacement of Aggregates (DT) andJin-Gu Kang2011-03-141-25/+3
* Add comment as following:Jin-Gu Kang2011-03-131-0/+12
* This patch removes some of useless instructions generated by bitfield access.Jin-Gu Kang2011-03-121-3/+13
* InstCombine: Fix a thinko where transform an icmp under the assumption that i...Benjamin Kramer2011-03-111-3/+2
* InstCombine: Turn umul_with_overflow into mul nuw if we can prove that it can...Benjamin Kramer2011-03-101-1/+29
* PR9346: Prevent SimplifyDemandedBits from incorrectly introducingEli Friedman2011-03-091-0/+4
* llvm.dbg.declare intrinsic does not use any llvm::Values. It's magic!Devang Patel2011-03-083-41/+3
* Reorder comments to put them the right way around.Nick Lewycky2011-03-081-2/+2
* Add more analysis of the sign bit of an srem instruction. If the LHS is negativeNick Lewycky2011-03-071-0/+12
* ConstantInt has some getters which return ConstantInt's or ConstantVector's ofNick Lewycky2011-03-061-22/+22
* InstCombine: We know the number of items initially added to the worklist map,...Benjamin Kramer2011-03-051-0/+1
* Thread comparisons over udiv/sdiv/ashr/lshr exact and lshr nuw/nsw wheneverNick Lewycky2011-03-051-0/+21
* Try once again to optimize "icmp (srem X, Y), Y" by turning the comparison intoNick Lewycky2011-03-051-0/+29
* Make InstCombiner::FoldAndOfICmps create a ConstantRange that's theAnders Carlsson2011-03-011-8/+12
* srem doesn't actually have the same resulting sign as its numerator, you couldNick Lewycky2011-02-281-10/+0
* Teach InstCombine to fold "(shr exact X, Y) == 0" --> X == 0, fixing #1 fromNick Lewycky2011-02-281-5/+13
* The sign of an srem instruction is the sign of its dividend (the firstNick Lewycky2011-02-281-3/+13
* change instcombine to not turn a call to non-varargs bitcast ofChris Lattner2011-02-241-5/+15
* Move "A | ~(A & ?) -> -1" from InstCombine to InstructionSimplify.Benjamin Kramer2011-02-201-16/+8
* InstCombine: Add a bunch of combines of the form x | (y ^ z).Benjamin Kramer2011-02-201-0/+41
* PR9218: SimplifyDemandedVectorElts can return a non-null value that is notEli Friedman2011-02-191-2/+7
* Add some transforms of the kind X-Y>X -> 0>Y which are valid when there is noDuncan Sands2011-02-181-18/+17
* have instcombine preserve nsw/nuw/exact when sinkingChris Lattner2011-02-171-11/+53
* fix typoChris Lattner2011-02-171-1/+1
* fix instcombine merging GEPs through a PHI to only make theChris Lattner2011-02-171-3/+7
* add is always integer, thanks to Frits for noticing this.Chris Lattner2011-02-171-1/+1
* Transform "A + B >= A + C" into "B >= C" if the adds do not wrap. Likewise f...Duncan Sands2011-02-171-93/+106
* preserve NUW/NSW when transforming add x,xChris Lattner2011-02-171-2/+7
* Spelling fix: consequtive -> consecutive.Duncan Sands2011-02-151-1/+1
* Fix 9216 - Endless loop in InstCombine pass.Nadav Rotem2011-02-151-1/+5
* Do not forget DebugLoc!Devang Patel2011-02-151-0/+1
* tidy up a bit.Chris Lattner2011-02-151-7/+9
* convert ConstantVector::get to use ArrayRef.Chris Lattner2011-02-151-7/+3