llvm-6502/lib/Transforms/Scalar
Dan Gohman 4d8414f420 Teach SCEVExpander's visitAddRecExpr to reuse an existing canonical
induction variable when the addrec to be expanded does not require
a wider type. This eliminates the need for IndVarSimplify to
micro-manage SCEV expansions, because SCEVExpander now
automatically expands them in the form that IndVarSimplify considers
to be canonical. (LSR still micro-manages its SCEV expansions,
because it's optimizing for the target, rather than for
other optimizations.)

Also, this uses the new getAnyExtendExpr, which has more clever
expression simplification logic than the IndVarSimplify code it
replaces, and this cleans up some ugly expansions in code such as
the included masked-iv.ll testcase.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73294 91177308-0d34-0410-b5e6-96231b3b80d8
2009-06-13 16:25:49 +00:00
..
ADCE.cpp Allow readonly functions to unwind exceptions. Teach 2009-05-06 06:49:50 +00:00
BasicBlockPlacement.cpp
CMakeLists.txt
CodeGenPrepare.cpp Fix CodeGenPrepare's address-mode sinking to handle unusual 2009-06-02 21:29:13 +00:00
CondPropagate.cpp Avoid making the transformation enabled by my last patch if the new destinations have phi nodes. 2009-04-15 00:43:54 +00:00
ConstantProp.cpp
DCE.cpp
DeadStoreElimination.cpp Rename PaddedSize to AllocSize, in the hope that this 2009-05-09 07:06:46 +00:00
GVN.cpp Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
GVNPRE.cpp Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
IndVarSimplify.cpp Teach SCEVExpander's visitAddRecExpr to reuse an existing canonical 2009-06-13 16:25:49 +00:00
InstructionCombining.cpp Don't do (x - (y - z)) --> (x + (z - y)) on floating-point types, because 2009-06-12 19:23:25 +00:00
JumpThreading.cpp Restore minor deletion. 2009-05-04 18:40:41 +00:00
LICM.cpp
LoopDeletion.cpp Allow readonly functions to unwind exceptions. Teach 2009-05-06 06:49:50 +00:00
LoopIndexSplit.cpp Fix loop-index-split to correctly preserve dominance frontiers. Part of 2009-05-22 03:22:46 +00:00
LoopRotation.cpp
LoopStrengthReduce.cpp Simplify. 2009-06-05 22:39:21 +00:00
LoopUnroll.cpp Adjust loop size estimate for full unrolling; 2009-04-20 22:19:33 +00:00
LoopUnswitch.cpp Allow readonly functions to unwind exceptions. Teach 2009-05-06 06:49:50 +00:00
Makefile
MemCpyOptimizer.cpp Rename PaddedSize to AllocSize, in the hope that this 2009-05-09 07:06:46 +00:00
PredicateSimplifier.cpp Use cast<> instead of dyn_cast<> for things that are known to be 2009-06-06 17:49:35 +00:00
Reassociate.cpp
Reg2Mem.cpp
Scalar.cpp
ScalarReplAggregates.cpp Use cast<> instead of dyn_cast<> for things that are known to be 2009-06-06 17:49:35 +00:00
SCCP.cpp Don't crash on multiple return value with no obvious inserted value. 2009-06-06 23:13:08 +00:00
SimplifyCFGPass.cpp second half of fix for PR4366: don't zap store to null of 2009-06-12 21:01:07 +00:00
SimplifyHalfPowrLibCalls.cpp
SimplifyLibCalls.cpp Split the Add, Sub, and Mul instruction opcodes into separate 2009-06-04 22:49:04 +00:00
TailDuplication.cpp Allow readonly functions to unwind exceptions. Teach 2009-05-06 06:49:50 +00:00
TailRecursionElimination.cpp Allow readonly functions to unwind exceptions. Teach 2009-05-06 06:49:50 +00:00