llvm/test/Transforms
Dan Gohman bd59d7b603 Implement more aggressive folding of add operand lists when
they contain multiplications of constants with add operations.
This helps simplify several kinds of things; in particular it
helps simplify expressions like ((-1 * (%a + %b)) + %a) to %b,
as expressions like this often come up in loop trip count
computations.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73361 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-14 22:58:51 +00:00
..
ADCE Allow readonly functions to unwind exceptions. Teach 2009-05-06 06:49:50 +00:00
ArgumentPromotion Fix typo. 2009-04-23 04:24:19 +00:00
BlockPlacement Rationalize the names of passes that print information: 2008-09-23 12:47:39 +00:00
BranchFolding Don't branch fold inline asm statements. 2007-10-19 21:09:55 +00:00
CodeExtractor sabre brings to my attention that the 'tr' suffix is also obsolete 2008-05-20 21:00:03 +00:00
CodeGenPrepare reenable test 2008-11-24 21:27:20 +00:00
CondProp Optimize conditional branch on i1 phis with non-constant inputs. 2009-04-14 23:40:03 +00:00
ConstantMerge sabre brings to my attention that the 'tr' suffix is also obsolete 2008-05-20 21:00:03 +00:00
ConstProp Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
DeadArgElim aha, DAE does have to think about PHI nodes. Many thanks to "Dr Evil" (aka Duncan) 2009-03-18 16:48:45 +00:00
DeadStoreElimination Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
FunctionAttrs Revert r70876 and add a testcase (@c7) showing the problem: 2009-05-07 18:08:34 +00:00
GlobalDCE Add a new "available_externally" linkage type. This is intended 2009-04-13 05:44:34 +00:00
GlobalOpt Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
GVN Be more aggressive in doing LoadPRE by tracing backwards when a block only has 2009-05-31 09:03:40 +00:00
GVNPRE Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
IndMemRem Actually run the test in this directory. 2009-01-25 08:05:07 +00:00
IndVarSimplify Implement more aggressive folding of add operand lists when 2009-06-14 22:58:51 +00:00
Inline PR4123: don't crash when inlining a call which uses its own result. 2009-05-08 00:22:04 +00:00
InstCombine Don't do (x - (y - z)) --> (x + (z - y)) on floating-point types, because 2009-06-12 19:23:25 +00:00
Internalize Teach the internalize pass to also internalize 2009-01-05 21:24:45 +00:00
IPConstantProp Modify some ipconstprop tests to also test with invokes. 2008-06-19 09:27:44 +00:00
JumpThreading Restore minor deletion. 2009-05-04 18:40:41 +00:00
LCSSA Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
LICM Before deleting a basic block, give other loop passes a chance cleanup analysis values, related to the instructions in the basic block. 2009-03-25 23:57:48 +00:00
LoopDeletion don't spew tons of stuff to the output. This testcase is *not* for 2008-12-03 06:41:50 +00:00
LoopIndexSplit Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
LoopRotate Testcase for PR2639. 2009-04-23 04:30:52 +00:00
LoopSimplify Fix some incorrect logic in DominanceFrontier::splitBlock. Part of 2009-05-21 20:40:30 +00:00
LoopStrengthReduce Revert 72493 and replace it with a more conservative fix, for now: don't 2009-05-27 21:10:47 +00:00
LoopUnroll remove a test that depends on -debug. 2009-03-13 20:31:48 +00:00
LoopUnswitch Actually test something. Use PR3170 test case. 2008-12-08 23:44:46 +00:00
LowerInvoke sabre brings to my attention that the 'tr' suffix is also obsolete 2008-05-20 21:00:03 +00:00
LowerSetJmp sabre brings to my attention that the 'tr' suffix is also obsolete 2008-05-20 21:00:03 +00:00
LowerSwitch sabre brings to my attention that the 'tr' suffix is also obsolete 2008-05-20 21:00:03 +00:00
Mem2Reg Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
MemCpyOpt Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
MergeFunc Given two identical weak functions, produce one internal function and two weak 2009-06-12 15:56:56 +00:00
PredicateSimplifier sabre brings to my attention that the 'tr' suffix is also obsolete 2008-05-20 21:00:03 +00:00
PruneEH Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
RaiseAllocations sabre brings to my attention that the 'tr' suffix is also obsolete 2008-05-20 21:00:03 +00:00
Reassociate Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
ScalarRepl Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
SCCP Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
SimplifyCFG Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
SimplifyLibCalls Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
SRETPromotion Add a basic test for the SRETPromotion pass. 2008-08-07 15:55:18 +00:00
StripSymbols sabre brings to my attention that the 'tr' suffix is also obsolete 2008-05-20 21:00:03 +00:00
TailCallElim sabre brings to my attention that the 'tr' suffix is also obsolete 2008-05-20 21:00:03 +00:00
TailDup Revert 52223. 2008-06-12 20:55:39 +00:00