summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/UnreachableBlockElim.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/CodeGen/UnreachableBlockElim.cpp')
-rw-r--r--llvm/lib/CodeGen/UnreachableBlockElim.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/UnreachableBlockElim.cpp b/llvm/lib/CodeGen/UnreachableBlockElim.cpp
index 177bab32bcc..c5343690329 100644
--- a/llvm/lib/CodeGen/UnreachableBlockElim.cpp
+++ b/llvm/lib/CodeGen/UnreachableBlockElim.cpp
@@ -146,8 +146,14 @@ bool UnreachableMachineBlockElim::runOnMachineFunction(MachineFunction &F) {
}
// Actually remove the blocks now.
- for (unsigned i = 0, e = DeadBlocks.size(); i != e; ++i)
+ for (unsigned i = 0, e = DeadBlocks.size(); i != e; ++i) {
+ // Remove any call site information for calls in the block.
+ for (auto &I : DeadBlocks[i]->instrs())
+ if (I.isCall(MachineInstr::IgnoreBundle))
+ DeadBlocks[i]->getParent()->updateCallSiteInfo(&I);
+
DeadBlocks[i]->eraseFromParent();
+ }
// Cleanup PHI nodes.
for (MachineFunction::iterator I = F.begin(), E = F.end(); I != E; ++I) {
OpenPOWER on IntegriCloud