summaryrefslogtreecommitdiffstats
path: root/llvm
diff options
context:
space:
mode:
authorOwen Anderson <resistor@mac.com>2008-11-11 22:11:27 +0000
committerOwen Anderson <resistor@mac.com>2008-11-11 22:11:27 +0000
commitfd395eb8012b4bde534142ff3dc334ddbf3ccd7c (patch)
treea7a6a601206b82f1f88db544209755e6a8437886 /llvm
parentab197ebb1abe6cad99fc10fabca00740dff91529 (diff)
downloadbcm5719-llvm-fd395eb8012b4bde534142ff3dc334ddbf3ccd7c.tar.gz
bcm5719-llvm-fd395eb8012b4bde534142ff3dc334ddbf3ccd7c.zip
Don't walk into predecessors in which the vreg is not live when doing shrinkwrapping.
This lets several failing tests get farther along, but doesn't completely fix any of them. llvm-svn: 59086
Diffstat (limited to 'llvm')
-rw-r--r--llvm/lib/CodeGen/PreAllocSplitting.cpp2
1 files changed, 2 insertions, 0 deletions
diff --git a/llvm/lib/CodeGen/PreAllocSplitting.cpp b/llvm/lib/CodeGen/PreAllocSplitting.cpp
index 09f002aa265..f7d8ab01026 100644
--- a/llvm/lib/CodeGen/PreAllocSplitting.cpp
+++ b/llvm/lib/CodeGen/PreAllocSplitting.cpp
@@ -618,6 +618,8 @@ PreAllocSplitting::ShrinkWrapLiveInterval(VNInfo *ValNo, MachineBasicBlock *MBB,
// Pred is the def bb and the def reaches other val#s, we must
// allow the value to be live out of the bb.
continue;
+ if (!CurrLI->liveAt(LIs->getMBBEndIdx(Pred)-1))
+ return;
ShrinkWrapLiveInterval(ValNo, Pred, MBB, DefMBB, Visited,
Uses, UseMIs, UseMBBs);
}
OpenPOWER on IntegriCloud