llvm-6502/lib/Transforms/Scalar
Evan Cheng cdf43b1fad If a loop termination compare instruction is the only use of its stride,
and the compaison is against a constant value, try eliminate the stride
by moving the compare instruction to another stride and change its
constant operand accordingly. e.g.

loop:
...
v1 = v1 + 3
v2 = v2 + 1
if (v2 < 10) goto loop
=>
loop:
...
v1 = v1 + 3
if (v1 < 30) goto loop


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@43336 91177308-0d34-0410-b5e6-96231b3b80d8
2007-10-25 09:11:16 +00:00
..
ADCE.cpp New CallInst interface to address GLIBCXX_DEBUG errors caused by 2007-08-01 03:43:44 +00:00
BasicBlockPlacement.cpp
CodeGenPrepare.cpp wrap some long lines. Major offenders that are left include 2007-08-02 16:53:43 +00:00
CondPropagate.cpp Fix PR1575 and test/Transforms/CondProp/2007-08-01-InvalidRead.ll 2007-08-02 04:47:05 +00:00
ConstantProp.cpp
CorrelatedExprs.cpp Remove a bogus return statement, what appears to have been a pasto 2007-07-26 15:29:35 +00:00
DCE.cpp
DeadStoreElimination.cpp Don't DSe volatile stores. 2007-08-26 21:14:47 +00:00
GCSE.cpp
GVN.cpp Allow GVN to eliminate redundant calls to functions without side effects. 2007-10-18 19:39:33 +00:00
GVNPRE.cpp explicit keywords. 2007-09-24 15:48:49 +00:00
IndVarSimplify.cpp Move the SCEV object factors from being static members of the individual 2007-10-22 18:31:58 +00:00
InstructionCombining.cpp simplify some code by using the new isNaN predicate 2007-10-24 18:54:45 +00:00
LICM.cpp Use empty() member functions when that's what's being tested for instead 2007-10-03 19:26:29 +00:00
LoopIndexSplit.cpp Handle multiple induction variables. 2007-09-25 18:24:48 +00:00
LoopRotation.cpp Use SmallVector instead of std::vector. 2007-08-21 00:31:24 +00:00
LoopStrengthReduce.cpp If a loop termination compare instruction is the only use of its stride, 2007-10-25 09:11:16 +00:00
LoopUnroll.cpp wrap some long lines. Major offenders that are left include 2007-08-02 16:53:43 +00:00
LoopUnswitch.cpp Do not walk invalid iterator. 2007-10-09 21:31:36 +00:00
LowerGC.cpp Change llvm.gcroot to not init the root to null at runtime, this prevents 2007-09-12 17:53:10 +00:00
LowerPacked.cpp Update GEP constructors to use an iterator interface to fix 2007-09-04 15:46:09 +00:00
Makefile
PredicateSimplifier.cpp Fix optimization. %x = sub %x, %y does not imply that %y is zero. 2007-09-20 00:48:36 +00:00
Reassociate.cpp
Reg2Mem.cpp Reg2Mem cleanup and optimizations: 2007-10-21 23:05:16 +00:00
ScalarReplAggregates.cpp Don't do SRA for unions with long double fields. 2007-09-28 00:21:38 +00:00
SCCP.cpp Use empty() member functions when that's what's being tested for instead 2007-10-03 19:26:29 +00:00
SimplifyCFG.cpp
TailDuplication.cpp
TailRecursionElimination.cpp Prevent tailcallelim from breaking "recursive" calls to builtins. 2007-09-10 20:58:55 +00:00