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 | 06b6ccfe900fede94b94cf6cfc38521f59b3b181 (patch) | |
tree | e0c28251d1b792e50f728e1181c9f1db436fcf1f /llvm/lib/CodeGen/MachineBasicBlock.cpp | |
parent | 62b34a65f9084d344a5bb3f0580ddcb693dd3162 (diff) | |
download | bcm5719-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.cpp | 5 |
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. |