From: Owen Anderson Date: Tue, 11 Nov 2008 22:11:27 +0000 (+0000) Subject: Don't walk into predecessors in which the vreg is not live when doing shrinkwrapping. X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=80fe8737eb0c563d5d518434672a600492486d93;p=oota-llvm.git 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. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@59086 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/lib/CodeGen/PreAllocSplitting.cpp b/lib/CodeGen/PreAllocSplitting.cpp index 09f002aa265..f7d8ab01026 100644 --- a/lib/CodeGen/PreAllocSplitting.cpp +++ b/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); }