aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
diff options
context:
space:
mode:
authorMatthias Braun <matze@braunis.de>2016-05-20 19:46:13 +0000
committerMatthias Braun <matze@braunis.de>2016-05-20 19:46:13 +0000
commit858d1df246e914a715622aea11966a12ed48abb3 (patch)
tree473dab14783e5772da5ac42d321abe1a4e11b4d4 /llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
parent5973bc8a82dc585b1f08190e4baba389a17a880f (diff)
downloadllvm-858d1df246e914a715622aea11966a12ed48abb3.zip
llvm-858d1df246e914a715622aea11966a12ed48abb3.tar.gz
llvm-858d1df246e914a715622aea11966a12ed48abb3.tar.bz2
LiveIntervalAnalysis: Fix missing defs in renameDisconnectedComponents().
Fix renameDisconnectedComponents() creating vreg uses that can be reached from function begin withouthaving a definition (or explicit live-in). Fix this by inserting IMPLICIT_DEF instruction before control-flow joins as necessary. Removes an assert from MachineScheduler because we may now get additional IMPLICIT_DEF when preparing the scheduling policy. This fixes the underlying problem of http://llvm.org/PR27705 llvm-svn: 270259
Diffstat (limited to 'llvm/lib/CodeGen/LiveIntervalAnalysis.cpp')
-rw-r--r--llvm/lib/CodeGen/LiveIntervalAnalysis.cpp2
1 files changed, 1 insertions, 1 deletions
diff --git a/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp b/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
index 3d22f70..2a7989d 100644
--- a/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
+++ b/llvm/lib/CodeGen/LiveIntervalAnalysis.cpp
@@ -1571,7 +1571,7 @@ void LiveIntervals::splitSeparateComponents(LiveInterval &LI,
}
void LiveIntervals::renameDisconnectedComponents() {
- ConnectedSubRegClasses SubRegClasses(*this, *MRI);
+ ConnectedSubRegClasses SubRegClasses(*this, *MRI, *TII);
// Iterate over all vregs. Note that we query getNumVirtRegs() the newly
// created vregs end up with higher numbers but do not need to be visited as