summaryrefslogtreecommitdiff
path: root/lib/Transforms
diff options
context:
space:
mode:
authorNAKAMURA Takumi <geek4civic@gmail.com>2013-11-17 18:05:34 +0000
committerNAKAMURA Takumi <geek4civic@gmail.com>2013-11-17 18:05:34 +0000
commit80ccd9ea59b8911f12836da98aceedce4ebc6a6f (patch)
treec6b7b48be113b0c88677e17436da7b30368dc426 /lib/Transforms
parentc8dc96be28fd1a3d6ddebbb48b8d55b61e4bd89b (diff)
downloadllvm-80ccd9ea59b8911f12836da98aceedce4ebc6a6f.tar.gz
llvm-80ccd9ea59b8911f12836da98aceedce4ebc6a6f.tar.bz2
llvm-80ccd9ea59b8911f12836da98aceedce4ebc6a6f.tar.xz
Utils/LoopUnroll.cpp: Tweak (StringRef)OldName to be valid until it is used, since r194601.
eraseFromParent() invalidates OldName. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@194970 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Transforms')
-rw-r--r--lib/Transforms/Utils/LoopUnroll.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/lib/Transforms/Utils/LoopUnroll.cpp b/lib/Transforms/Utils/LoopUnroll.cpp
index 9955bfd626..162807d03c 100644
--- a/lib/Transforms/Utils/LoopUnroll.cpp
+++ b/lib/Transforms/Utils/LoopUnroll.cpp
@@ -90,6 +90,7 @@ static BasicBlock *FoldBlockIntoPredecessor(BasicBlock *BB, LoopInfo* LI,
// Move all definitions in the successor to the predecessor...
OnlyPred->getInstList().splice(OnlyPred->end(), BB->getInstList());
+ // OldName will be valid until erased.
StringRef OldName = BB->getName();
// Erase basic block from the function...
@@ -102,12 +103,13 @@ static BasicBlock *FoldBlockIntoPredecessor(BasicBlock *BB, LoopInfo* LI,
}
}
LI->removeBlock(BB);
- BB->eraseFromParent();
// Inherit predecessor's name if it exists...
if (!OldName.empty() && !OnlyPred->hasName())
OnlyPred->setName(OldName);
+ BB->eraseFromParent();
+
return OnlyPred;
}