aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Analysis/InstructionSimplify.cpp
Commit message (Expand)AuthorAgeFilesLines
* InstSimplify: Don't try to replace an extractvalue/insertvalue pair with the ...Benjamin Kramer2011-09-051-1/+2
* Add some simple insertvalue simplifications, for the purpose of cleaningDuncan Sands2011-09-051-0/+36
* Revert r137781; I agree with Duncan's comment that the situation in question ...Eli Friedman2011-08-171-5/+4
* Extend the undef ^ undef idiom once more. No testcase: I can't figure out ho...Eli Friedman2011-08-161-4/+5
* Fix what seems an obvious typo. Patch by Ivan Krasin. ProblemDuncan Sands2011-08-041-1/+1
* Add helper function for getting true/false constants in a uniformDuncan Sands2011-07-261-34/+48
* Convert GetElementPtrInst to use ArrayRef.Jay Foad2011-07-251-2/+1
* Convert ConstantExpr::getGetElementPtr andJay Foad2011-07-211-3/+1
* Convert SimplifyGEPInst to use ArrayRef.Jay Foad2011-07-191-8/+9
* Use ArrayRef in ConstantFoldInstOperands and ConstantFoldCall.Jay Foad2011-07-191-10/+10
* land David Blaikie's patch to de-constify Type, with a few tweaks.Chris Lattner2011-07-181-9/+9
* Improve constant folding of undef for cmp and select operators.Dan Gohman2011-07-011-4/+4
* The comparision "max(x,y)==x" is equivalent to "x>=y". Since the max isDuncan Sands2011-05-071-10/+56
* PR9838: Fix transform introduced in r127064 to not trigger when only one side...Eli Friedman2011-05-051-1/+1
* Add variations on: max(x,y) >= min(x,z) folds to true. This isn't that common,Duncan Sands2011-05-041-2/+46
* Implement some basic simplifications involving min/max, for exampleDuncan Sands2011-05-031-0/+118
* Fix PR9579: when simplifying a compare to "true" or "false", and it wasDuncan Sands2011-05-021-18/+22
* Move some rem transforms out of instcombine and into instsimplify.Duncan Sands2011-05-021-0/+117
* Don't include Operator.h from InstrTypes.h.Jay Foad2011-04-111-0/+1
* Fix two cases I forgot to update when doing a mental "getSwappedPredicate".Nick Lewycky2011-03-091-2/+2
* Add another micro-optimization. Apologies for the lack of refactoring, but INick Lewycky2011-03-091-2/+28
* Thread comparisons over udiv/sdiv/ashr/lshr exact and lshr nuw/nsw wheneverNick Lewycky2011-03-051-1/+33
* Revert broken srem logic from r126991.Nick Lewycky2011-03-041-15/+0
* Fold "icmp pred (srem X, Y), Y" like we do for urem. Handle signed comparisonsNick Lewycky2011-03-041-1/+30
* Teach instruction simplify to use constant ranges to solve problems of the formNick Lewycky2011-03-041-37/+61
* Optimize "icmp pred (urem X, Y), Y" --> true/false depending on pred. There'sNick Lewycky2011-03-011-0/+18
* Move "A | ~(A & ?) -> -1" from InstCombine to InstructionSimplify.Benjamin Kramer2011-02-201-0/+10
* Remove pointless blank line.Duncan Sands2011-02-131-1/+0
* Teach instsimplify that X+Y>=X+Z is the same as Y>=Z if neither side overflows,Duncan Sands2011-02-131-2/+49
* Formatting and comment tweaks.Duncan Sands2011-02-091-5/+5
* Teach instsimplify some tricks about exact/nuw/nsw shifts.Chris Lattner2011-02-091-39/+69
* Rework InstrTypes.h so to reduce the repetition around the NSW/NUW/ExactChris Lattner2011-02-091-2/+2
* Add an m_Div pattern for matching either a udiv or an sdiv and use itDuncan Sands2011-02-071-4/+2
* teach instsimplify to transform (X / Y) * Y to XChris Lattner2011-02-061-3/+5
* Fix another warning.Anders Carlsson2011-02-051-1/+1
* Improve threading of comparisons over select instructions (spotted by myDuncan Sands2011-02-031-3/+25
* Reenable the transform "(X*Y)/Y->X" when the multiplication is known not toDuncan Sands2011-02-021-5/+5
* Add a m_Undef pattern for convenience. This is so that code that usesDuncan Sands2011-02-011-16/+16
* Have m_One also match constant vectors for which every element is 1.Duncan Sands2011-02-011-6/+0
* Commit 124487 broke 254.gap. See if disabling the part that might be triggeredDuncan Sands2011-01-301-5/+5
* Transform (X/Y)*Y into X if the division is exact. Instcombine already knows...Duncan Sands2011-01-301-0/+9
* Fix comment.Nick Lewycky2011-01-291-1/+1
* Move InstCombine's knowledge of fdiv to SimplifyInstruction().Frits van Bommel2011-01-291-2/+24
* This dyn_cast should be a cast. Pointed out by Frits van Bommel.Duncan Sands2011-01-281-1/+1
* Thread divisions over selects and phis. This doesn't fire much and has basic...Duncan Sands2011-01-281-9/+19
* My auto-simplifier noticed that ((X/Y)*Y)/Y occurs several times in SPECDuncan Sands2011-01-281-0/+107
* According to my auto-simplifier the most common missed simplifications inDuncan Sands2011-01-251-12/+64
* At -O123 the early-cse pass is run before instcombine has run. According to myDuncan Sands2011-01-201-0/+162
* For completeness, generalize the (X + Y) - Y -> X transform and add X - (X + ...Duncan Sands2011-01-181-15/+57
* Simplify (X<<1)-X into X. According to my auto-simplier this is the most com...Duncan Sands2011-01-181-0/+6