llvm-6502/lib/Transforms/Scalar
Chris Lattner d9c3a0d7cc Various passes before isel split edges and do other CFG-restructuring changes.
isel has its own particular features that it wants in the CFG, in order to
reduce the number of times a constant is computed, etc.  Make sure that we
clean up the CFG before doing any other things for isel.  Doing so can
dramatically reduce the number of split edges and reduce the number of
places that constants get computed.  For example, this shrinks
CodeGen/Generic/phi-immediate-factoring.ll from 44 to 37 instructions on X86,
and from 21 to 17 MBB's in the output.  This is primarily a code size win,
not a performance win.

This implements CodeGen/Generic/phi-immediate-factoring.ll and PR1296.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35575 91177308-0d34-0410-b5e6-96231b3b80d8
2007-04-02 01:35:34 +00:00
..
ADCE.cpp Eliminate use of ctors that take vectors. 2007-02-13 02:10:56 +00:00
BasicBlockPlacement.cpp Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes in 2007-02-05 23:32:05 +00:00
CodeGenPrepare.cpp Various passes before isel split edges and do other CFG-restructuring changes. 2007-04-02 01:35:34 +00:00
CondPropagate.cpp Prefer non-virtual calls to ConstantInt::isZero over virtual calls to 2007-03-02 00:28:52 +00:00
ConstantProp.cpp Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes in 2007-02-05 23:32:05 +00:00
CorrelatedExprs.cpp Remove the "isSigned" parameters from ConstantRange. It turns out they 2007-03-01 07:54:15 +00:00
DCE.cpp Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes in 2007-02-05 23:32:05 +00:00
DeadStoreElimination.cpp Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes in 2007-02-05 23:32:05 +00:00
GCSE.cpp Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes in 2007-02-05 23:32:05 +00:00
IndVarSimplify.cpp Now IndVarSimplify is a LoopPass. 2007-03-07 06:39:01 +00:00
InstructionCombining.cpp simplify this code, make it work for ap ints 2007-04-01 20:57:36 +00:00
LICM.cpp Change uses of Function::front to Function::getEntryBlock for readability. 2007-03-22 16:38:57 +00:00
LoopStrengthReduce.cpp print the type of an inserted IV in -debug mode. 2007-04-01 22:21:39 +00:00
LoopUnroll.cpp Now LoopUnroll is a LoopPass. 2007-03-07 01:38:05 +00:00
LoopUnswitch.cpp Now LoopUnswitch is a LoopPass. 2007-03-07 00:26:10 +00:00
LowerGC.cpp Eliminate use of ctors that take vectors. 2007-02-13 02:10:56 +00:00
LowerPacked.cpp For PR1195: 2007-02-15 03:39:18 +00:00
Makefile DONT_BUILD_RELINKED is gone and implied by BUILD_ARCHIVE now 2005-10-24 02:26:13 +00:00
PredicateSimplifier.cpp Fix broken optimization disabled by a logic bug. 2007-03-22 02:02:51 +00:00
Reassociate.cpp Prefer non-virtual calls to ConstantInt::isZero over virtual calls to 2007-03-02 00:28:52 +00:00
Reg2Mem.cpp Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes in 2007-02-05 23:32:05 +00:00
ScalarReplAggregates.cpp Change uses of Function::front to Function::getEntryBlock for readability. 2007-03-22 16:38:57 +00:00
SCCP.cpp minor cleanups 2007-03-04 04:50:21 +00:00
SimplifyCFG.cpp switch MarkAliveBlocks over to using SmallPtrSet instead of std::set, speeding 2007-03-04 04:20:48 +00:00
TailDuplication.cpp Apply the VISIBILITY_HIDDEN field to the remaining anonymous classes in 2007-02-05 23:32:05 +00:00
TailRecursionElimination.cpp Change uses of Function::front to Function::getEntryBlock for readability. 2007-03-22 16:38:57 +00:00