llvm-6502/lib/Transforms/Scalar
Andrew Trick 12d1ebe943 Enable SCEV-based unrolling by default.
This changes loop unrolling to use the same mechanism for trip count
computation as indvars. This is a stronger check that tends to unroll
more loops. A very common side-effect is that many single iteration
loops will be removed sooner. The real goal was simply to remove
dependence on canonical IVs.

x86 is break even.
ARM performance changes to expect (+ is good):
External/SPEC/CFP2000/183.equake/183.equake +13%
SingleSource/Benchmarks/Dhrystone/fldry     +21%
MultiSource/Applications/spiff/spiff         +3%
SingleSource/Benchmarks/Stanford/Puzzle     -14%

The Puzzle regression is actually an improvement in loop optimization
that defeats GVN: rdar://problem/10065079.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139009 91177308-0d34-0410-b5e6-96231b3b80d8
2011-09-02 17:26:28 +00:00
..
ADCE.cpp The landingpad instruction isn't dead simply because it's value isn't used. 2011-08-19 21:52:06 +00:00
BasicBlockPlacement.cpp
CMakeLists.txt Remove the old tail duplication pass. It is not used and is unable to update 2011-08-30 23:03:45 +00:00
CodeGenPrepare.cpp Dramatically speedup codegen prepare by a) avoiding use of dominator tree and b) doing a separate pass over dbg.value instructions. 2011-08-18 00:50:51 +00:00
ConstantProp.cpp
CorrelatedValuePropagation.cpp
DCE.cpp
DeadStoreElimination.cpp Speculatively revert r138809 in an attempt to fix DragonEgg. 2011-08-30 21:11:06 +00:00
EarlyCSE.cpp
GVN.cpp Compare type size instead of type _store_ size to make sure that BitCastInst 2011-09-02 14:57:37 +00:00
IndVarSimplify.cpp Don't sink landingpad instructions during ind-var simplification. 2011-08-26 20:40:15 +00:00
JumpThreading.cpp
LICM.cpp Use 'getFirstInsertionPt' when trying to insert new instructions during LICM. 2011-08-18 23:42:36 +00:00
LoopDeletion.cpp
LoopIdiomRecognize.cpp
LoopInstSimplify.cpp
LoopRotation.cpp
LoopStrengthReduce.cpp LSR wants to split the landing pad's critical edge. Let it do it, but use the 2011-08-25 05:55:40 +00:00
LoopUnrollPass.cpp Enable SCEV-based unrolling by default. 2011-09-02 17:26:28 +00:00
LoopUnswitch.cpp
LowerAtomic.cpp Make a bunch of symbols private. 2011-08-19 01:42:18 +00:00
Makefile
MemCpyOptimizer.cpp Atomic load/store handling for the passes using memdep (GVN, DSE, memcpyopt). 2011-08-17 22:22:24 +00:00
ObjCARC.cpp When inserting new instructions, use getFirstInsertionPt instead of 2011-08-25 01:08:34 +00:00
Reassociate.cpp Silence a bunch (but not all) "variable written but not read" warnings 2011-08-12 14:54:45 +00:00
Reg2Mem.cpp
Scalar.cpp Remove the old tail duplication pass. It is not used and is unable to update 2011-08-30 23:03:45 +00:00
ScalarReplAggregates.cpp Finish adding support for lifetime intrinsics to SROA. Fixes PR10121! 2011-07-25 23:14:22 +00:00
SCCP.cpp Change worklist driven deletion to be an iterative process. 2011-09-01 21:28:33 +00:00
SimplifyCFGPass.cpp
SimplifyLibCalls.cpp
Sink.cpp Fix an issue with the IR sink pass found by inspection. (I'm not sure anyone is actually using this, but might as well fix it since I found the issue.) 2011-09-01 21:21:24 +00:00
TailRecursionElimination.cpp