aboutsummaryrefslogtreecommitdiff
path: root/lib/CodeGen/MachineBasicBlock.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'lib/CodeGen/MachineBasicBlock.cpp')
-rw-r--r--lib/CodeGen/MachineBasicBlock.cpp15
1 files changed, 3 insertions, 12 deletions
diff --git a/lib/CodeGen/MachineBasicBlock.cpp b/lib/CodeGen/MachineBasicBlock.cpp
index 7351302cc3..71d59f0b4b 100644
--- a/lib/CodeGen/MachineBasicBlock.cpp
+++ b/lib/CodeGen/MachineBasicBlock.cpp
@@ -796,8 +796,8 @@ MachineBasicBlock::SplitCriticalEdge(MachineBasicBlock *Succ, Pass *P) {
MachineOperand &MO = I->getOperand(ni);
unsigned Reg = MO.getReg();
PHISrcRegs.insert(Reg);
- if (MO.isUndef() || !isLastMBB)
- break;
+ if (MO.isUndef())
+ continue;
LiveInterval &LI = LIS->getInterval(Reg);
VNInfo *VNI = LI.getVNInfoAt(PrevIndex);
@@ -817,16 +817,7 @@ MachineBasicBlock::SplitCriticalEdge(MachineBasicBlock *Succ, Pass *P) {
if (!LI.liveAt(PrevIndex))
continue;
- bool isLiveOut = false;
- for (MachineBasicBlock::succ_iterator SI = succ_begin(),
- SE = succ_end(); SI != SE; ++SI) {
- MachineBasicBlock *SuccMBB = *SI == NMBB ? Succ : *SI;
- if (LI.liveAt(LIS->getMBBStartIdx(SuccMBB))) {
- isLiveOut = true;
- break;
- }
- }
-
+ bool isLiveOut = LI.liveAt(LIS->getMBBStartIdx(Succ));
if (isLiveOut && isLastMBB) {
VNInfo *VNI = LI.getVNInfoAt(PrevIndex);
assert(VNI && "LiveInterval should have VNInfo where it is live.");