summaryrefslogtreecommitdiffstats
path: root/lib/Transforms/InstCombine
Commit message (Expand)AuthorAgeFilesLines
* Add an instcombine for constructs like a | -(b != c); a select is moreEli Friedman2011-04-141-1/+8
* Reapply r129401 with patch for clang.Bill Wendling2011-04-131-5/+1
* Revert r129401 for now. Clang is using the old way of doing things.Bill Wendling2011-04-121-1/+5
* Remove the unaligned load intrinsics in favor of using native unaligned loads.Bill Wendling2011-04-121-5/+1
* Don't include Operator.h from InstrTypes.h.Jay Foad2011-04-111-0/+1
* InstCombine optimizes gep(bitcast(x)) even when the bitcasts casts away addressNadav Rotem2011-04-051-8/+11
* While SimplifyDemandedBits constant folds this, we can't rely on it here.Benjamin Kramer2011-04-021-2/+7
* Fix comment.Benjamin Kramer2011-04-011-2/+2
* Tweaks to the icmp+sext-to-shifts optimization to address Frits' comments:Benjamin Kramer2011-04-011-6/+6
* Fix build.Benjamin Kramer2011-04-011-1/+2
* InstCombine: Turn icmp + sext into bitwise/integer ops when the input has onl...Benjamin Kramer2011-04-011-0/+50
* InstCombine: Move (sext icmp) transforms into their own method. No intended f...Benjamin Kramer2011-04-012-37/+43
* Instcombile optimization: extractelement(cast) -> cast(extractelement)Nadav Rotem2011-03-311-1/+9
* InstCombine: APFloat can't perform arithmetic on PPC double doubles, don't ev...Benjamin Kramer2011-03-311-2/+4
* 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