summaryrefslogtreecommitdiff
path: root/lib/CodeGen
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
commitac7caa0d436fa9fe96234c4e009cdacd7cd6b124 (patch)
treef2c0debed34f76be806f8a444dcd2c1b994e8f6e /lib/CodeGen
parent008b58c4ae38d45e01267bdea9f4b166ad35ca74 (diff)
downloadllvm-ac7caa0d436fa9fe96234c4e009cdacd7cd6b124.tar.gz
llvm-ac7caa0d436fa9fe96234c4e009cdacd7cd6b124.tar.bz2
llvm-ac7caa0d436fa9fe96234c4e009cdacd7cd6b124.tar.xz
Update live-in lists when splitting critical edges.
Fixes PR10814. Patch by Jan Sjödin! git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@141960 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/CodeGen')
-rw-r--r--lib/CodeGen/MachineBasicBlock.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/lib/CodeGen/MachineBasicBlock.cpp b/lib/CodeGen/MachineBasicBlock.cpp
index 8f0fb46879..4c5fe4c480 100644
--- a/lib/CodeGen/MachineBasicBlock.cpp
+++ b/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.