diff options
author | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-10-14 17:25:46 +0000 |
---|---|---|
committer | Jakob Stoklund Olesen <stoklund@2pi.dk> | 2011-10-14 17:25:46 +0000 |
commit | ac7caa0d436fa9fe96234c4e009cdacd7cd6b124 (patch) | |
tree | f2c0debed34f76be806f8a444dcd2c1b994e8f6e /lib/CodeGen/MachineBasicBlock.cpp | |
parent | 008b58c4ae38d45e01267bdea9f4b166ad35ca74 (diff) |
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/MachineBasicBlock.cpp')
-rw-r--r-- | lib/CodeGen/MachineBasicBlock.cpp | 5 |
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. |