summaryrefslogtreecommitdiffstats
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
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
-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