summaryrefslogtreecommitdiff
path: root/lib/Transforms
AgeCommit message (Expand)AuthorFilesLines
2011-04-11Just because a GlobalVariable's initializer is [N x { i32, void ()* }] doesn'tNick Lewycky1-7/+10
2011-04-11Don't include Operator.h from InstrTypes.h.Jay Foad7-0/+7
2011-04-09Add back a couple checks removed by r129128; the fact that an intitializerEli Friedman1-4/+6
2011-04-09fix PR9523, a crash in looprotate on a non-canonical loop made out of indirec...Chris Lattner1-1/+5
2011-04-09Fix a bug where RecursivelyDeleteTriviallyDeadInstructions couldChris Lattner1-3/+18
2011-04-08Add a function for profiling to run at shutdown. Unlike the existing API, thisNick Lewycky2-3/+40
2011-04-08llvm.global_[cd]tor is defined to be either external, or appending with an arrayNick Lewycky1-20/+5
2011-04-07Do not let debug info interfer with branch folding.Devang Patel1-0/+6
2011-04-07Expose more passes to the C API.Rafael Espindola1-0/+16
2011-04-07While hoisting common code from if/else, hoist debug info intrinsics if they ...Devang Patel1-8/+18
2011-04-07PR9634: Don't unconditionally tell the AliasSetTracker that the PreheaderLoadEli Friedman1-21/+4
2011-04-07Simplify. isIdenticalToWhenDefined() checks opcode.Devang Patel1-4/+2
2011-04-06While folding branch to a common destination into a predecessor, copy dbg val...Devang Patel1-4/+17
2011-04-05Fix typos. Adjust some whitespace for style. No functionality change.Nick Lewycky2-14/+14
2011-04-05InstCombine optimizes gep(bitcast(x)) even when the bitcasts casts away addressNadav Rotem1-8/+11
2011-04-04Remove some support for ReturnInsts with multiple operands, and forJay Foad1-1/+1
2011-04-04Attempt to fix breakage from r128782 reported by Francois Pichet onEli Friedman1-0/+3
2011-04-02PR9446: RecursivelyDeleteTriviallyDeadInstructions can delete the instructionEli Friedman1-1/+4
2011-04-02While SimplifyDemandedBits constant folds this, we can't rely on it here.Benjamin Kramer1-2/+7
2011-04-01Fix comment.Benjamin Kramer1-2/+2
2011-04-01Tweaks to the icmp+sext-to-shifts optimization to address Frits' comments:Benjamin Kramer1-6/+6
2011-04-01Fix build.Benjamin Kramer1-1/+2
2011-04-01InstCombine: Turn icmp + sext into bitwise/integer ops when the input has onl...Benjamin Kramer1-0/+50
2011-04-01InstCombine: Move (sext icmp) transforms into their own method. No intended f...Benjamin Kramer2-37/+43
2011-03-31Instcombile optimization: extractelement(cast) -> cast(extractelement)Nadav Rotem1-1/+9
2011-03-31InstCombine: APFloat can't perform arithmetic on PPC double doubles, don't ev...Benjamin Kramer1-2/+4
2011-03-31InstCombine: Fix transform to use the swapped predicate.Benjamin Kramer1-2/+2
2011-03-31InstCombine: fold fcmp (fneg x), (fneg y) -> fcmp x, yBenjamin Kramer1-0/+5
2011-03-31InstCombine: fold fcmp pred (fneg x), C -> fcmp swap(pred) x, -CBenjamin Kramer1-0/+8
2011-03-31InstCombine: Shrink "fcmp (fpext x), C" to "fcmp x, C" if C can be losslessly...Benjamin Kramer1-0/+34
2011-03-31InstCombine: fold fcmp (fpext x), (fpext y) -> fcmp x, y.Benjamin Kramer1-0/+7
2011-03-30* The DSE code that tested for overlapping needed to take into account the factBill Wendling1-1/+3
2011-03-30InstCombine: If the divisor of an fdiv has an exact inverse, turn it into an ...Benjamin Kramer1-0/+12
2011-03-30Remove PHINode::reserveOperandSpace(). Instead, add a parameter toJay Foad25-62/+44
2011-03-30(Almost) always call reserveOperandSpace() on newly created PHINodes.Jay Foad19-15/+38
2011-03-29InstCombine: Add a few missing combines for ANDs and ORs of sign bit tests.Benjamin Kramer1-0/+24
2011-03-29DSE: Remove an early exit optimization that depended on the ordering of a Sma...Benjamin Kramer1-13/+0
2011-03-29Do some simple copy propagation through integer loads and stores when promotingCameron Zwarich1-9/+14
2011-03-28Remove tabs I accidentally added.Nick Lewycky1-15/+15
2011-03-28Make more use of PHINode::getNumIncomingValues().Jay Foad2-5/+5
2011-03-27Add some debug output when -instcombine uses RAUW. This can make debug output...Frits van Bommel1-1/+4
2011-03-27Teach the transformation that moves binary operators around selects to preserveNick Lewycky1-8/+22
2011-03-27Use APInt's umul_ov instead of rolling our own overflow detection.Benjamin Kramer1-5/+6
2011-03-27Add a small missed optimization: turn X == C ? X : Y into X == C ? C : Y. ThisNick Lewycky1-0/+13
2011-03-26Simplification noticed by Frits.Bill Wendling1-3/+2
2011-03-26Rework the logic that determines if a store completely overlaps an ealier store.Bill Wendling1-15/+23
2011-03-26Fix a typo and add a test.Cameron Zwarich1-1/+1
2011-03-26PR9561: A store with a negative offset (via GEP) could erroniously say that itBill Wendling1-0/+2
2011-03-25No functionality change, just adjust some whitespace for coding style complia...Nick Lewycky1-2/+2
2011-03-24Debug intrinsics must be skipped at the beginning and ends of blocks, lest theyCameron Zwarich1-2/+6