llvm-6502/lib/Transforms/Scalar
Chris Lattner 2351abaeab Move from Stage 0 to Stage 1.
Only emit one PHI node for IV uses with identical bases and strides (after
moving foldable immediates to the load/store instruction).

This implements LoopStrengthReduce/dont_insert_redundant_ops.ll, allowing
us to generate this PPC code for test1:

        or r30, r3, r3
.LBB_test1_1:   ; Loop
        li r2, 0
        stw r2, 0(r30)
        stw r2, 4(r30)
        bl L_pred$stub
        addi r30, r30, 8
        cmplwi cr0, r3, 0
        bne .LBB_test1_1        ; Loop

instead of this code:

        or r30, r3, r3
        or r29, r3, r3
.LBB_test1_1:   ; Loop
        li r2, 0
        stw r2, 0(r29)
        stw r2, 4(r30)
        bl L_pred$stub
        addi r30, r30, 8        ;; Two iv's with step of 8
        addi r29, r29, 8
        cmplwi cr0, r3, 0
        bne .LBB_test1_1        ; Loop


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@22635 91177308-0d34-0410-b5e6-96231b3b80d8
2005-08-03 22:51:21 +00:00
..
ADCE.cpp preserve calling conventions when hacking on code 2005-05-14 12:25:32 +00:00
BasicBlockPlacement.cpp Remove trailing whitespace 2005-04-21 23:48:37 +00:00
CondPropagate.cpp Remove trailing whitespace 2005-04-21 23:48:37 +00:00
ConstantProp.cpp Remove trailing whitespace 2005-04-21 23:48:37 +00:00
CorrelatedExprs.cpp Remove trailing whitespace 2005-04-21 23:48:37 +00:00
DCE.cpp clean up and modernize this pass. 2005-05-08 18:45:26 +00:00
DeadStoreElimination.cpp Remove trailing whitespace 2005-04-21 23:48:37 +00:00
GCSE.cpp Remove trailing whitespace 2005-04-21 23:48:37 +00:00
IndVarSimplify.cpp Break SCEVExpander out of IndVarSimplify into its own .h/.cpp file so that 2005-07-30 00:12:19 +00:00
InstructionCombining.cpp Update to use the new MathExtras.h support for log2 computation. 2005-08-02 19:16:58 +00:00
LICM.cpp prevent va_arg from being hoisted from a loop 2005-06-20 13:36:33 +00:00
LoopStrengthReduce.cpp Move from Stage 0 to Stage 1. 2005-08-03 22:51:21 +00:00
LoopUnroll.cpp Eliminate tabs and trailing spaces 2005-04-23 21:38:35 +00:00
LoopUnswitch.cpp Remove trailing whitespace 2005-04-21 23:48:37 +00:00
LowerConstantExprs.cpp Remove trailing whitespace 2005-04-21 23:48:37 +00:00
LowerGC.cpp Remove trailing whitespace 2005-04-21 23:48:37 +00:00
LowerPacked.cpp Remove trailing whitespace 2005-04-21 23:48:37 +00:00
Makefile Change Library Names Not To Conflict With Others When Installed 2004-10-27 23:18:45 +00:00
PRE.cpp Remove trailing whitespace 2005-04-21 23:48:37 +00:00
Reassociate.cpp Eliminate all remaining tabs and trailing spaces. 2005-07-27 06:12:32 +00:00
ScalarReplAggregates.cpp Remove trailing whitespace 2005-04-21 23:48:37 +00:00
SCCP.cpp Eliminate tabs and trailing spaces 2005-04-23 21:38:35 +00:00
SimplifyCFG.cpp Remove trailing whitespace 2005-04-21 23:48:37 +00:00
TailDuplication.cpp Remove trailing whitespace 2005-04-21 23:48:37 +00:00
TailRecursionElimination.cpp Eliminate all remaining tabs and trailing spaces. 2005-07-27 06:12:32 +00:00