diff options
author | John Criswell <criswell@uiuc.edu> | 2003-12-18 17:19:19 +0000 |
---|---|---|
committer | John Criswell <criswell@uiuc.edu> | 2003-12-18 17:19:19 +0000 |
commit | 47df12d80db90e125e9f2ff764286ee11665476d (patch) | |
tree | c48871322d66d8e9f4fa772fbe38825251401e0d /lib/Transforms/Scalar | |
parent | d000e1dc2f08892aaa8c1bfd96f85f24b9d66cbb (diff) | |
download | external_llvm-47df12d80db90e125e9f2ff764286ee11665476d.zip external_llvm-47df12d80db90e125e9f2ff764286ee11665476d.tar.gz external_llvm-47df12d80db90e125e9f2ff764286ee11665476d.tar.bz2 |
Reverted back to previous revision - this was previously merged
according to the CVS log messages.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@10517 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms/Scalar')
-rw-r--r-- | lib/Transforms/Scalar/IndVarSimplify.cpp | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/lib/Transforms/Scalar/IndVarSimplify.cpp b/lib/Transforms/Scalar/IndVarSimplify.cpp index 0cc408c..763854e 100644 --- a/lib/Transforms/Scalar/IndVarSimplify.cpp +++ b/lib/Transforms/Scalar/IndVarSimplify.cpp @@ -15,19 +15,19 @@ //===----------------------------------------------------------------------===// #include "llvm/Transforms/Scalar.h" -#include "llvm/Analysis/InductionVariable.h" -#include "llvm/Analysis/LoopInfo.h" +#include "llvm/Constants.h" +#include "llvm/Type.h" #include "llvm/iPHINode.h" #include "llvm/iOther.h" -#include "llvm/Type.h" -#include "llvm/Constants.h" +#include "llvm/Analysis/InductionVariable.h" +#include "llvm/Analysis/LoopInfo.h" #include "llvm/Support/CFG.h" +#include "llvm/Transforms/Utils/Local.h" #include "Support/Debug.h" #include "Support/Statistic.h" #include "Support/STLExtras.h" #include <algorithm> - -namespace llvm { +using namespace llvm; namespace { Statistic<> NumRemoved ("indvars", "Number of aux indvars removed"); @@ -141,6 +141,8 @@ static bool TransformLoop(LoopInfo *Loops, Loop *Loop) { DEBUG(IV->print(std::cerr)); + while (isa<PHINode>(AfterPHIIt)) ++AfterPHIIt; + // Don't do math with pointers... const Type *IVTy = IV->Phi->getType(); if (isa<PointerType>(IVTy)) IVTy = Type::ULongTy; @@ -186,6 +188,12 @@ static bool TransformLoop(LoopInfo *Loops, Loop *Loop) { IV->Phi->setName(""); Val->setName(OldName); + // Get the incoming values used by the PHI node + std::vector<Value*> PHIOps; + PHIOps.reserve(IV->Phi->getNumIncomingValues()); + for (unsigned i = 0, e = IV->Phi->getNumIncomingValues(); i != e; ++i) + PHIOps.push_back(IV->Phi->getIncomingValue(i)); + // Delete the old, now unused, phi node... Header->getInstList().erase(IV->Phi); @@ -242,8 +250,7 @@ namespace { "Canonicalize Induction Variables"); } -Pass *createIndVarSimplifyPass() { +Pass *llvm::createIndVarSimplifyPass() { return new InductionVariableSimplify(); } -} // End llvm namespace |