diff options
| author | Cameron Zwarich <zwarich@apple.com> | 2011-05-24 06:00:08 +0000 | 
|---|---|---|
| committer | Cameron Zwarich <zwarich@apple.com> | 2011-05-24 06:00:08 +0000 | 
| commit | 46e1ebf3676d300d9cad25e0aec15f2258c40b1b (patch) | |
| tree | 82870cb224d038993911dd16aac63c78af3a5ae8 /llvm/lib/Transforms | |
| parent | 3b1d1217f827c52a71786202968929e4017bc80f (diff) | |
| download | bcm5719-llvm-46e1ebf3676d300d9cad25e0aec15f2258c40b1b.tar.gz bcm5719-llvm-46e1ebf3676d300d9cad25e0aec15f2258c40b1b.zip | |
Clean up the lazy initialization of DIBuilder a bit.
llvm-svn: 131956
Diffstat (limited to 'llvm/lib/Transforms')
| -rw-r--r-- | llvm/lib/Transforms/Scalar/LICM.cpp | 3 | ||||
| -rw-r--r-- | llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp | 2 | ||||
| -rw-r--r-- | llvm/lib/Transforms/Utils/SSAUpdater.cpp | 12 | 
3 files changed, 6 insertions, 11 deletions
| diff --git a/llvm/lib/Transforms/Scalar/LICM.cpp b/llvm/lib/Transforms/Scalar/LICM.cpp index f706cc2a55b..d42d4ff837b 100644 --- a/llvm/lib/Transforms/Scalar/LICM.cpp +++ b/llvm/lib/Transforms/Scalar/LICM.cpp @@ -602,13 +602,12 @@ namespace {      SmallPtrSet<Value*, 4> &PointerMustAliases;      SmallVectorImpl<BasicBlock*> &LoopExitBlocks;      AliasSetTracker &AST; -    DIBuilder *DIB; // Only passed to LoadAndStorePromoter.    public:      LoopPromoter(Value *SP,                   const SmallVectorImpl<Instruction*> &Insts, SSAUpdater &S,                   SmallPtrSet<Value*, 4> &PMA,                   SmallVectorImpl<BasicBlock*> &LEB, AliasSetTracker &ast) -      : LoadAndStorePromoter(Insts, S, 0, DIB), SomePtr(SP), +      : LoadAndStorePromoter(Insts, S, 0, 0), SomePtr(SP),          PointerMustAliases(PMA), LoopExitBlocks(LEB), AST(ast) {}      virtual bool isInstInList(Instruction *I, diff --git a/llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp b/llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp index ebcb88c0157..eb683b8af80 100644 --- a/llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp +++ b/llvm/lib/Transforms/Scalar/ScalarReplAggregates.cpp @@ -1367,6 +1367,8 @@ bool SROA::performPromotion(Function &F) {            Insts.push_back(cast<Instruction>(*UI));          DbgDeclareInst *DDI = FindAllocaDbgDeclare(AI); +        if (DDI && !DIB) +          DIB = new DIBuilder(*AI->getParent()->getParent()->getParent());          AllocaPromoter(Insts, SSA, DDI, DIB).run(AI, Insts);          Insts.clear();        } diff --git a/llvm/lib/Transforms/Utils/SSAUpdater.cpp b/llvm/lib/Transforms/Utils/SSAUpdater.cpp index 09f0a50cb03..b336194a35e 100644 --- a/llvm/lib/Transforms/Utils/SSAUpdater.cpp +++ b/llvm/lib/Transforms/Utils/SSAUpdater.cpp @@ -358,7 +358,7 @@ Value *SSAUpdater::GetValueAtEndOfBlockInternal(BasicBlock *BB) {  LoadAndStorePromoter::  LoadAndStorePromoter(const SmallVectorImpl<Instruction*> &Insts, -                     SSAUpdater &S, DbgDeclareInst *DD, DIBuilder *&DB, +                     SSAUpdater &S, DbgDeclareInst *DD, DIBuilder *DB,                       StringRef BaseName) : SSA(S), DDI(DD), DIB(DB) {    if (Insts.empty()) return; @@ -407,11 +407,8 @@ run(const SmallVectorImpl<Instruction*> &Insts) const {      if (BlockUses.size() == 1) {        // If it is a store, it is a trivial def of the value in the block.        if (StoreInst *SI = dyn_cast<StoreInst>(User)) { -        if (DDI) { -          if (!DIB) -            DIB = new DIBuilder(*SI->getParent()->getParent()->getParent()); +        if (DDI)            ConvertDebugDeclareToDebugValue(DDI, SI, *DIB); -        }          SSA.AddAvailableValue(BB, SI->getOperand(0));        } else           // Otherwise it is a load, queue it to rewrite as a live-in load. @@ -466,11 +463,8 @@ run(const SmallVectorImpl<Instruction*> &Insts) const {          // If this is a store to an unrelated pointer, ignore it.          if (!isInstInList(SI, Insts)) continue; -        if (DDI) { -          if (!DIB) -            DIB = new DIBuilder(*SI->getParent()->getParent()->getParent()); +        if (DDI)            ConvertDebugDeclareToDebugValue(DDI, SI, *DIB); -        }          // Remember that this is the active value in the block.          StoredValue = SI->getOperand(0); | 

