diff options
author | Owen Anderson <resistor@mac.com> | 2008-11-11 22:11:27 +0000 |
---|---|---|
committer | Owen Anderson <resistor@mac.com> | 2008-11-11 22:11:27 +0000 |
commit | fd395eb8012b4bde534142ff3dc334ddbf3ccd7c (patch) | |
tree | a7a6a601206b82f1f88db544209755e6a8437886 /llvm | |
parent | ab197ebb1abe6cad99fc10fabca00740dff91529 (diff) | |
download | bcm5719-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.cpp | 2 |
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); } |