summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen/MachineBasicBlock.cpp
diff options
context:
space:
mode:
authorJakob Stoklund Olesen <stoklund@2pi.dk>2011-10-14 17:25:46 +0000
committerJakob Stoklund Olesen <stoklund@2pi.dk>2011-10-14 17:25:46 +0000
commit06b6ccfe900fede94b94cf6cfc38521f59b3b181 (patch)
treee0c28251d1b792e50f728e1181c9f1db436fcf1f /llvm/lib/CodeGen/MachineBasicBlock.cpp
parent62b34a65f9084d344a5bb3f0580ddcb693dd3162 (diff)
downloadbcm5719-llvm-06b6ccfe900fede94b94cf6cfc38521f59b3b181.tar.gz
bcm5719-llvm-06b6ccfe900fede94b94cf6cfc38521f59b3b181.zip
Update live-in lists when splitting critical edges.
Fixes PR10814. Patch by Jan Sjödin! llvm-svn: 141960
Diffstat (limited to 'llvm/lib/CodeGen/MachineBasicBlock.cpp')
-rw-r--r--llvm/lib/CodeGen/MachineBasicBlock.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/MachineBasicBlock.cpp b/llvm/lib/CodeGen/MachineBasicBlock.cpp
index 8f0fb46879a..4c5fe4c480a 100644
--- a/llvm/lib/CodeGen/MachineBasicBlock.cpp
+++ b/llvm/lib/CodeGen/MachineBasicBlock.cpp
@@ -571,6 +571,11 @@ MachineBasicBlock::SplitCriticalEdge(MachineBasicBlock *Succ, Pass *P) {
if (i->getOperand(ni+1).getMBB() == this)
i->getOperand(ni+1).setMBB(NMBB);
+ // Inherit live-ins from the successor
+ for (MachineBasicBlock::livein_iterator I = Succ->livein_begin(),
+ E = Succ->livein_end(); I != E; ++I)
+ NMBB->addLiveIn(*I);
+
// Update LiveVariables.
if (LV) {
// Restore kills of virtual registers that were killed by the terminators.
OpenPOWER on IntegriCloud