diff options
author | Bill Wendling <isanbard@gmail.com> | 2011-08-09 01:17:10 +0000 |
---|---|---|
committer | Bill Wendling <isanbard@gmail.com> | 2011-08-09 01:17:10 +0000 |
commit | 55a09346aca81694418f3a3b3dda492187ec6e03 (patch) | |
tree | b7d50965345635e36a1ab674ae3c2554e725eae9 /llvm/lib/Transforms | |
parent | def94edf696fa6994f9384191249f15e6d042eb0 (diff) | |
download | bcm5719-llvm-55a09346aca81694418f3a3b3dda492187ec6e03.tar.gz bcm5719-llvm-55a09346aca81694418f3a3b3dda492187ec6e03.zip |
There is only one instance of this placeholder being created. Just use that
instead of a vector.
llvm-svn: 137099
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r-- | llvm/lib/Transforms/Utils/LowerInvoke.cpp | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/llvm/lib/Transforms/Utils/LowerInvoke.cpp b/llvm/lib/Transforms/Utils/LowerInvoke.cpp index 3a034ecd901..5040bb6878d 100644 --- a/llvm/lib/Transforms/Utils/LowerInvoke.cpp +++ b/llvm/lib/Transforms/Utils/LowerInvoke.cpp @@ -406,7 +406,7 @@ bool LowerInvoke::insertExpensiveEHSupport(Function &F) { SmallVector<ReturnInst*,16> Returns; SmallVector<UnwindInst*,16> Unwinds; SmallVector<InvokeInst*,16> Invokes; - SmallVector<UnreachableInst*, 16> Unreachables; + UnreachableInst* UnreachablePlaceholder = 0; for (Function::iterator BB = F.begin(), E = F.end(); BB != E; ++BB) if (ReturnInst *RI = dyn_cast<ReturnInst>(BB->getTerminator())) { @@ -490,7 +490,7 @@ bool LowerInvoke::insertExpensiveEHSupport(Function &F) { // for a standard call). We insert an unreachable instruction here and // modify the block to jump to the correct unwinding pad later. BasicBlock *UnwindBB = BasicBlock::Create(F.getContext(), "unwindbb", &F); - Unreachables.push_back(new UnreachableInst(F.getContext(), UnwindBB)); + UnreachablePlaceholder = new UnreachableInst(F.getContext(), UnwindBB); Value *CatchLoad = new LoadInst(InvokeNum, "invoke.num", true, CatchBB); SwitchInst *CatchSwitch = @@ -579,10 +579,10 @@ bool LowerInvoke::insertExpensiveEHSupport(Function &F) { Unwinds[i]->eraseFromParent(); } - // Replace all inserted unreachables with a branch to the unwind handler. - for (unsigned i = 0, e = Unreachables.size(); i != e; ++i) { - BranchInst::Create(UnwindHandler, Unreachables[i]); - Unreachables[i]->eraseFromParent(); + // Replace the inserted unreachable with a branch to the unwind handler. + if (UnreachablePlaceholder) { + BranchInst::Create(UnwindHandler, UnreachablePlaceholder); + UnreachablePlaceholder->eraseFromParent(); } // Finally, for any returns from this function, if this function contains an |