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 | 80fe8737eb0c563d5d518434672a600492486d93 (patch) | |
tree | 6abc52ffde41977873f905d787feab8a770bbda0 /lib | |
parent | cd8e66a1efdb31f0514270387207fb8c63bae4ed (diff) | |
download | external_llvm-80fe8737eb0c563d5d518434672a600492486d93.zip external_llvm-80fe8737eb0c563d5d518434672a600492486d93.tar.gz external_llvm-80fe8737eb0c563d5d518434672a600492486d93.tar.bz2 |
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
Diffstat (limited to 'lib')
-rw-r--r-- | lib/CodeGen/PreAllocSplitting.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/lib/CodeGen/PreAllocSplitting.cpp b/lib/CodeGen/PreAllocSplitting.cpp index 09f002a..f7d8ab0 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); } |