aboutsummaryrefslogtreecommitdiff
path: root/lib/Transforms/InstCombine/InstructionCombining.cpp
AgeCommit message (Expand)Author
2011-03-28Make more use of PHINode::getNumIncomingValues().Jay Foad
2011-03-17Try to not lose variable's debug info during instcombine.Devang Patel
2011-02-15Do not forget DebugLoc!Devang Patel
2011-02-02Conservatively, clear optional flags, such as nsw, when performingDan Gohman
2011-01-21fix PR9013, an infinite loop in instcombine.Chris Lattner
2011-01-21update obsolete comment.Chris Lattner
2011-01-21Don't try to pull vector bitcasts that change the number of elements throughNick Lewycky
2011-01-16remove a dead check, this was needed before we had an explicit veto on uses o...Chris Lattner
2011-01-16enhance FoldOpIntoPhi in instcombine to try harder when a phi hasChris Lattner
2011-01-16remove the AllowAggressive argument to FoldOpIntoPhi. It is forced to false ...Chris Lattner
2011-01-16more cleanups: use the IR builder.Chris Lattner
2011-01-16tidy up code.Chris Lattner
2010-12-22Add a generic expansion transform: A op (B op' C) -> (A op B) op' (A op C)Duncan Sands
2010-12-22Add some statistics, good for understanding how much more powerfulDuncan Sands
2010-12-19fix an oversight caught by Frits!Chris Lattner
2010-12-19move a transformation to a more logical place, simplifying it.Chris Lattner
2010-11-29Transform (extractvalue (load P), ...) to (load (gep P, 0, ...)) if the load ...Frits van Bommel
2010-11-23Rename SimplifyDistributed to the more meaningfull name SimplifyByFactorizing.Duncan Sands
2010-11-23Propagate LeftDistributes and RightDistributes into their only uses.Duncan Sands
2010-11-23Fix typo pointed out by Frits van Bommel and Marius Wachtler.Duncan Sands
2010-11-23Exploit distributive laws (eg: And distributes over Or, Mul over Add, etc) in aDuncan Sands
2010-11-22If a GEP index simply advances by multiples of a type of zero size,Duncan Sands
2010-11-22Move the "gep undef" -> "undef" transform from instcombine toDuncan Sands
2010-11-13Generalize the reassociation transform in SimplifyCommutative (now renamed toDuncan Sands
2010-10-23SmallVectorize.Benjamin Kramer
2010-10-07Now with fewer extraneous semicolons!Owen Anderson
2010-10-07Add initialization routines to InstCombine.Owen Anderson
2010-07-21Fix batch of converting RegisterPass<> to INTIALIZE_PASS().Owen Anderson
2010-07-09cache result of operator*Gabor Greif
2010-06-24use ArgOperand API, also tighten the type of visitFree to make this work out ...Gabor Greif
2010-05-27Teach instCombine to remove malloc+free if malloc's only uses are comparisonsDuncan Sands
2010-04-16Revert 101465, it broke internal OpenGL testing.Eric Christopher
2010-04-16reapply r101434Gabor Greif
2010-04-16back out r101423 and r101397, they break llvm-gcc self-host on darwin10Gabor Greif
2010-04-15reapply r101364, which has been backed out in r101368Gabor Greif
2010-04-15back out r101364, as it trips the linux nightlybot on some clang C++ testsGabor Greif
2010-04-15rotate CallInst operands, i.e. move callee to the backGabor Greif
2010-02-16There are two ways of checking for a given type, for example isa<PointerType>(T)Duncan Sands
2010-02-15Uniformize the names of type predicates: rather than having isFloatTy andDuncan Sands
2010-01-07teach ComputeNumSignBits to look through PHI nodes.Chris Lattner
2010-01-05Move remaining stuff to the isInteger predicate.Benjamin Kramer
2010-01-05Convert a ton of simple integer type equality tests to the new predicate.Benjamin Kramer
2010-01-05Use do+while instead of while for loops which obviously have aDan Gohman
2010-01-05prune some #includes.Chris Lattner
2010-01-05split and/or/xor out into one overly-large (2000LOC) file. However, I thinkChris Lattner
2010-01-05missed file with previous commit.Chris Lattner
2010-01-05eliminate getBitCastOperand and simplify some over-complex inbounds stuff.Chris Lattner
2010-01-05split call handling out to InstCombineCalls.cppChris Lattner
2010-01-05optimize cttz and ctlz when we can prove something about the Chris Lattner
2010-01-05this inline function moved to addsubChris Lattner