diff options
| author | Dan Gohman <gohman@apple.com> | 2009-06-18 16:54:06 +0000 | 
|---|---|---|
| committer | Dan Gohman <gohman@apple.com> | 2009-06-18 16:54:06 +0000 | 
| commit | a0348809b63def1733af55fd1a9af6bf2540d83f (patch) | |
| tree | 359e2fb8b6afc088dc5371388159f496a5d51e32 /llvm/lib/Transforms | |
| parent | 56bd02c55c7e512e140003015ab201441ef9eeac (diff) | |
| download | bcm5719-llvm-a0348809b63def1733af55fd1a9af6bf2540d83f.tar.gz bcm5719-llvm-a0348809b63def1733af55fd1a9af6bf2540d83f.zip | |
Remove the code from IVUsers that attempted to handle
casted induction variables in cases where the cast
isn't foldable. It ended up being a pessimization in
many cases. This could be fixed, but it would require
a bunch of complicated code in IVUsers' clients. The
advantages of this approach aren't visible enough to
justify it at this time.
llvm-svn: 73706
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp | 18 | 
1 files changed, 2 insertions, 16 deletions
| diff --git a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp index 894eb4a1673..03966672d62 100644 --- a/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp +++ b/llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp @@ -336,13 +336,6 @@ namespace {      /// EmittedBase.      Value *OperandValToReplace; -    /// isSigned - The stride (and thus also the Base) of this use may be in -    /// a narrower type than the use itself (OperandValToReplace->getType()). -    /// When this is the case, the isSigned field indicates whether the -    /// IV expression should be signed-extended instead of zero-extended to -    /// fit the type of the use. -    bool isSigned; -      /// Imm - The immediate value that should be added to the base immediately      /// before Inst, because it will be folded into the imm field of the      /// instruction.  This is also sometimes used for loop-variant values that @@ -363,7 +356,6 @@ namespace {      BasedUser(IVStrideUse &IVSU, ScalarEvolution *se)        : SE(se), Base(IVSU.getOffset()), Inst(IVSU.getUser()),          OperandValToReplace(IVSU.getOperandValToReplace()), -        isSigned(IVSU.isSigned()),          Imm(SE->getIntegerSCEV(0, Base->getType())),           isUseOfPostIncrementedValue(IVSU.isUseOfPostIncrementedValue()) {} @@ -428,11 +420,6 @@ Value *BasedUser::InsertCodeForBaseAtPosition(const SCEVHandle &NewBase,      NewValSCEV = SE->getAddExpr(NewValSCEV, Imm);    } -  if (isSigned) -    NewValSCEV = SE->getTruncateOrSignExtend(NewValSCEV, Ty); -  else -    NewValSCEV = SE->getTruncateOrZeroExtend(NewValSCEV, Ty); -    return Rewriter.expandCodeFor(NewValSCEV, Ty, IP);  } @@ -2047,7 +2034,7 @@ ICmpInst *LoopStrengthReduce::ChangeCompareStride(Loop *L, ICmpInst *Cond,      OldCond->replaceAllUsesWith(Cond);      OldCond->eraseFromParent(); -    IU->IVUsesByStride[*NewStride]->addUser(NewOffset, Cond, NewCmpLHS, false); +    IU->IVUsesByStride[*NewStride]->addUser(NewOffset, Cond, NewCmpLHS);      CondUse = &IU->IVUsesByStride[*NewStride]->Users.back();      CondStride = NewStride;      ++NumEliminated; @@ -2397,8 +2384,7 @@ void LoopStrengthReduce::OptimizeLoopTermCond(Loop *L) {        // Clone the IVUse, as the old use still exists!        IU->IVUsesByStride[*CondStride]->addUser(CondUse->getOffset(), Cond, -                                              CondUse->getOperandValToReplace(), -                                               false); +                                             CondUse->getOperandValToReplace());        CondUse = &IU->IVUsesByStride[*CondStride]->Users.back();      }    } | 

