aboutsummaryrefslogtreecommitdiff
path: root/lib/Transforms/InstCombine
AgeCommit message (Expand)Author
2011-03-14--- Merging r127464 into '.': Bill Wendling
2011-03-07Add more analysis of the sign bit of an srem instruction. If the LHS is negativeNick Lewycky
2011-03-06ConstantInt has some getters which return ConstantInt's or ConstantVector's ofNick Lewycky
2011-03-05InstCombine: We know the number of items initially added to the worklist map,...Benjamin Kramer
2011-03-05Thread comparisons over udiv/sdiv/ashr/lshr exact and lshr nuw/nsw wheneverNick Lewycky
2011-03-05Try once again to optimize "icmp (srem X, Y), Y" by turning the comparison intoNick Lewycky
2011-03-01Make InstCombiner::FoldAndOfICmps create a ConstantRange that's theAnders Carlsson
2011-02-28srem doesn't actually have the same resulting sign as its numerator, you couldNick Lewycky
2011-02-28Teach InstCombine to fold "(shr exact X, Y) == 0" --> X == 0, fixing #1 fromNick Lewycky
2011-02-28The sign of an srem instruction is the sign of its dividend (the firstNick Lewycky
2011-02-24change instcombine to not turn a call to non-varargs bitcast ofChris Lattner
2011-02-20Move "A | ~(A & ?) -> -1" from InstCombine to InstructionSimplify.Benjamin Kramer
2011-02-20InstCombine: Add a bunch of combines of the form x | (y ^ z).Benjamin Kramer
2011-02-19PR9218: SimplifyDemandedVectorElts can return a non-null value that is notEli Friedman
2011-02-18Add some transforms of the kind X-Y>X -> 0>Y which are valid when there is noDuncan Sands
2011-02-17have instcombine preserve nsw/nuw/exact when sinkingChris Lattner
2011-02-17fix typoChris Lattner
2011-02-17fix instcombine merging GEPs through a PHI to only make theChris Lattner
2011-02-17add is always integer, thanks to Frits for noticing this.Chris Lattner
2011-02-17Transform "A + B >= A + C" into "B >= C" if the adds do not wrap. Likewise f...Duncan Sands
2011-02-17preserve NUW/NSW when transforming add x,xChris Lattner
2011-02-15Spelling fix: consequtive -> consecutive.Duncan Sands
2011-02-15Fix 9216 - Endless loop in InstCombine pass.Nadav Rotem
2011-02-15Do not forget DebugLoc!Devang Patel
2011-02-15tidy up a bit.Chris Lattner
2011-02-15convert ConstantVector::get to use ArrayRef.Chris Lattner
2011-02-14revert my ConstantVector patch, it seems to have made the llvm-gccChris Lattner
2011-02-14Switch ConstantVector::get to use ArrayRef instead of a pointer+sizeChris Lattner
2011-02-13remove a now-unneccesary cast.Chris Lattner
2011-02-13implement instcombine folding for things like (x >> c) < 42.Chris Lattner
2011-02-13refactor some code out into a helper method.Chris Lattner
2011-02-11Also fold (A+B) == A -> B == 0 when the add is commuted.Benjamin Kramer
2011-02-11When lowering an inbounds gep, the intermediate adds can haveChris Lattner
2011-02-10implement the first part of PR8882: when lowering an inboundsChris Lattner
2011-02-10Enhance a bunch of transformations in instcombine to start generatingChris Lattner
2011-02-10Enhance the "compare with shift" and "compare with div" Chris Lattner
2011-02-10more cleanups, notably bitcast isn't used for "signed to unsigned type Chris Lattner
2011-02-10A bunch of cleanups and simplifications using the new PatternMatch predicatesChris Lattner
2011-02-10teach SimplifyDemandedBits that exact shifts demand the bits they Chris Lattner
2011-02-09Teach instsimplify some tricks about exact/nuw/nsw shifts.Chris Lattner
2011-02-09Rework InstrTypes.h so to reduce the repetition around the NSW/NUW/ExactChris Lattner
2011-02-06enhance vmcore to know that udiv's can be exact, and add a trivialChris Lattner
2011-02-02Conservatively, clear optional flags, such as nsw, when performingDan Gohman
2011-01-30Recognize and simplifyAnders Carlsson
2011-01-29Call SimplifyFDivInst() in InstCombiner::visitFDiv().Frits van Bommel
2011-01-29Move InstCombine's knowledge of fdiv to SimplifyInstruction().Frits van Bommel
2011-01-28My auto-simplifier noticed that ((X/Y)*Y)/Y occurs several times in SPECDuncan Sands
2011-01-28Fold select + select where both selects are on the same condition.Nick Lewycky
2011-01-23Null initialize a few variables flagged byTed Kremenek
2011-01-21Just because we have determined that an (fcmp | fcmp) is true for A < B,Owen Anderson