aboutsummaryrefslogtreecommitdiff
path: root/lib/Transforms/Scalar
AgeCommit message (Expand)Author
2006-04-01Fix InstCombine/2006-04-01-InfLoop.llChris Lattner
2006-04-01Fold A^(B&A) -> (B&A)^AChris Lattner
2006-03-31If we can look through vector operations to find the scalar version of anChris Lattner
2006-03-31extractelement(undef,x) -> undefChris Lattner
2006-03-30Fix Transforms/InstCombine/2006-03-30-ExtractElement.llChris Lattner
2006-03-25Don't crash on packed logical opsChris Lattner
2006-03-24Fix spelloChris Lattner
2006-03-24add the actual cost to the debug infoChris Lattner
2006-03-23Can't combine anymore - we don't have a chain through llvm.dbg intrinsics.Jim Laskey
2006-03-22silence a bogus gcc warningChris Lattner
2006-03-19Teach cee to propagate through switch statements. This implementsChris Lattner
2006-03-18- Fixed a bogus if condition.Evan Cheng
2006-03-18Sort StrideOrder so we can process the smallest strides first. This allowsEvan Cheng
2006-03-17Allow users of iv / stride to be rewritten with expression that is a multiplyEvan Cheng
2006-03-16For each loop, keep track of all the IV expressions inserted indexed byEvan Cheng
2006-03-14Implement a FIXME, recusively reassociatingChris Lattner
2006-03-14extract some code into a method, no functionality changeChris Lattner
2006-03-14Promote shifts by a constant to multiplies so that we can reassociateChris Lattner
2006-03-13Added target lowering hooks which LSR consults to make more intelligentEvan Cheng
2006-03-08Fix a miscompilation of 188.ammp with the new CFE. 188.ammp is accessingChris Lattner
2006-03-07Teach the alignment handling code to look through constant expr casts and GEPsChris Lattner
2006-03-06Teach instcombine to increase the alignment of memset/memcpy/memmove whenChris Lattner
2006-03-05Make vector narrowing more effective, implementingChris Lattner
2006-03-04Add factoring of multiplications, e.g. turning A*A+A*B into A*(A+B).Chris Lattner
2006-03-04Canonicalize (X+C1)*C2 -> X*C2+C1*C2Chris Lattner
2006-03-03Change this to work with renamed intrinsics.Chris Lattner
2006-03-02Generalize the REM folding code to handle another case Nick LewyckyChris Lattner
2006-02-28Fix a regression in a patch from a couple of days ago. This fixesChris Lattner
2006-02-28Implement rem.ll:test[7-9] and PR712Chris Lattner
2006-02-28Simplify some code now that the RHS of a rem can't be 0Chris Lattner
2006-02-28Rearrange some code, fold "rem X, 0", implementing rem.ll:test6Chris Lattner
2006-02-27Merge two almost-identical pieces of code.Chris Lattner
2006-02-27Fold (A^B) == A -> B == 0Chris Lattner
2006-02-26Fold (X|C1)^C2 -> X^(C1|C2) when possible. This implementsChris Lattner
2006-02-24Fix a problem that Nate noticed that boils down to an over conservative checkChris Lattner
2006-02-22Fix Regression/Transforms/LoopUnswitch/2006-02-22-UnswitchCrash.ll, whichChris Lattner
2006-02-22Add some comments, simplify some code, and fix a bug that caused rewritingChris Lattner
2006-02-18improved support for branch folding, still not enabled.Chris Lattner
2006-02-18Fix bugs identified by VC++.Jeff Cohen
2006-02-18Implement deletion of dead blocks, currently disabled.Chris Lattner
2006-02-18a previous patch completely disabled trivial unswitching, this fixees it.Chris Lattner
2006-02-18initial trivial support for folding branches that have now-constant destinati...Chris Lattner
2006-02-18When unswitching a loop, make sure to update loop info with exit blocks inChris Lattner
2006-02-17Fix loops where the header has an exit, fixing a loop-unswitch crash on craftyChris Lattner
2006-02-17start of some new simplification code, not thoroughly tested, use at your ownChris Lattner
2006-02-16Rework the SelectionDAG-based implementations of SimplifyDemandedBitsNate Begeman
2006-02-16Change SplitBlock to increment a BasicBlock::iterator, not an Instruction*. ...Chris Lattner
2006-02-16Fix VC++ warning.Jeff Cohen
2006-02-16fix a bug where we unswitched the wrong wayChris Lattner
2006-02-15Implement trivial unswitching for switch stmts. This allows us to trivialChris Lattner