diff options
| author | Roman Divacky <rdivacky@FreeBSD.org> | 2010-07-13 17:19:57 +0000 | 
|---|---|---|
| committer | Roman Divacky <rdivacky@FreeBSD.org> | 2010-07-13 17:19:57 +0000 | 
| commit | 66e41e3c6e8b8fbc48d5d3b4d2bd9ce0be4ecb75 (patch) | |
| tree | 9de1c5f67a98cd0e73c60838396486c984f63ac2 /lib/Transforms/Utils/CloneLoop.cpp | |
| parent | abdf259d487163e72081a8cf4991b1617206b41e (diff) | |
Notes
Diffstat (limited to 'lib/Transforms/Utils/CloneLoop.cpp')
| -rw-r--r-- | lib/Transforms/Utils/CloneLoop.cpp | 33 | 
1 files changed, 16 insertions, 17 deletions
diff --git a/lib/Transforms/Utils/CloneLoop.cpp b/lib/Transforms/Utils/CloneLoop.cpp index 38928dc7cc88..551b63039a0e 100644 --- a/lib/Transforms/Utils/CloneLoop.cpp +++ b/lib/Transforms/Utils/CloneLoop.cpp @@ -15,7 +15,6 @@  #include "llvm/BasicBlock.h"  #include "llvm/Analysis/LoopPass.h"  #include "llvm/Analysis/Dominators.h" -#include "llvm/ADT/DenseMap.h"  using namespace llvm; @@ -23,13 +22,13 @@ using namespace llvm;  /// CloneDominatorInfo - Clone basicblock's dominator tree and, if available,  /// dominance info. It is expected that basic block is already cloned.  static void CloneDominatorInfo(BasicBlock *BB,  -                               DenseMap<const Value *, Value *> &ValueMap, +                               ValueMap<const Value *, Value *> &VMap,                                 DominatorTree *DT,                                 DominanceFrontier *DF) {    assert (DT && "DominatorTree is not available"); -  DenseMap<const Value *, Value*>::iterator BI = ValueMap.find(BB); -  assert (BI != ValueMap.end() && "BasicBlock clone is missing"); +  ValueMap<const Value *, Value*>::iterator BI = VMap.find(BB); +  assert (BI != VMap.end() && "BasicBlock clone is missing");    BasicBlock *NewBB = cast<BasicBlock>(BI->second);    // NewBB already got dominator info. @@ -43,11 +42,11 @@ static void CloneDominatorInfo(BasicBlock *BB,    // NewBB's dominator is either BB's dominator or BB's dominator's clone.    BasicBlock *NewBBDom = BBDom; -  DenseMap<const Value *, Value*>::iterator BBDomI = ValueMap.find(BBDom); -  if (BBDomI != ValueMap.end()) { +  ValueMap<const Value *, Value*>::iterator BBDomI = VMap.find(BBDom); +  if (BBDomI != VMap.end()) {      NewBBDom = cast<BasicBlock>(BBDomI->second);      if (!DT->getNode(NewBBDom)) -      CloneDominatorInfo(BBDom, ValueMap, DT, DF); +      CloneDominatorInfo(BBDom, VMap, DT, DF);    }    DT->addNewBlock(NewBB, NewBBDom); @@ -60,8 +59,8 @@ static void CloneDominatorInfo(BasicBlock *BB,          for (DominanceFrontier::DomSetType::iterator I = S.begin(), E = S.end();               I != E; ++I) {            BasicBlock *DB = *I; -          DenseMap<const Value*, Value*>::iterator IDM = ValueMap.find(DB); -          if (IDM != ValueMap.end()) +          ValueMap<const Value*, Value*>::iterator IDM = VMap.find(DB); +          if (IDM != VMap.end())              NewDFSet.insert(cast<BasicBlock>(IDM->second));            else              NewDFSet.insert(DB); @@ -71,10 +70,10 @@ static void CloneDominatorInfo(BasicBlock *BB,    }  } -/// CloneLoop - Clone Loop. Clone dominator info. Populate ValueMap +/// CloneLoop - Clone Loop. Clone dominator info. Populate VMap  /// using old blocks to new blocks mapping.  Loop *llvm::CloneLoop(Loop *OrigL, LPPassManager  *LPM, LoopInfo *LI, -                      DenseMap<const Value *, Value *> &ValueMap, Pass *P) { +                      ValueMap<const Value *, Value *> &VMap, Pass *P) {    DominatorTree *DT = NULL;    DominanceFrontier *DF = NULL; @@ -104,8 +103,8 @@ Loop *llvm::CloneLoop(Loop *OrigL, LPPassManager  *LPM, LoopInfo *LI,      for (Loop::block_iterator I = L->block_begin(), E = L->block_end();           I != E; ++I) {        BasicBlock *BB = *I; -      BasicBlock *NewBB = CloneBasicBlock(BB, ValueMap, ".clone"); -      ValueMap[BB] = NewBB; +      BasicBlock *NewBB = CloneBasicBlock(BB, VMap, ".clone"); +      VMap[BB] = NewBB;        if (P)          LPM->cloneBasicBlockSimpleAnalysis(BB, NewBB, L);        NewLoop->addBasicBlockToLoop(NewBB, LI->getBase()); @@ -117,7 +116,7 @@ Loop *llvm::CloneLoop(Loop *OrigL, LPPassManager  *LPM, LoopInfo *LI,        for (Loop::block_iterator I = L->block_begin(), E = L->block_end();             I != E; ++I) {          BasicBlock *BB = *I; -        CloneDominatorInfo(BB, ValueMap, DT, DF); +        CloneDominatorInfo(BB, VMap, DT, DF);        }      // Process sub loops @@ -125,7 +124,7 @@ Loop *llvm::CloneLoop(Loop *OrigL, LPPassManager  *LPM, LoopInfo *LI,        LoopNest.push_back(*I);    } while (!LoopNest.empty()); -  // Remap instructions to reference operands from ValueMap. +  // Remap instructions to reference operands from VMap.    for(SmallVector<BasicBlock *, 16>::iterator NBItr = NewBlocks.begin(),           NBE = NewBlocks.end();  NBItr != NBE; ++NBItr) {      BasicBlock *NB = *NBItr; @@ -135,8 +134,8 @@ Loop *llvm::CloneLoop(Loop *OrigL, LPPassManager  *LPM, LoopInfo *LI,        for (unsigned index = 0, num_ops = Insn->getNumOperands();              index != num_ops; ++index) {          Value *Op = Insn->getOperand(index); -        DenseMap<const Value *, Value *>::iterator OpItr = ValueMap.find(Op); -        if (OpItr != ValueMap.end()) +        ValueMap<const Value *, Value *>::iterator OpItr = VMap.find(Op); +        if (OpItr != VMap.end())            Insn->setOperand(index, OpItr->second);        }      }  | 
