diff options
author | Matthias Braun <matze@braunis.de> | 2016-05-20 19:46:13 +0000 |
---|---|---|
committer | Matthias Braun <matze@braunis.de> | 2016-05-20 19:46:13 +0000 |
commit | 858d1df246e914a715622aea11966a12ed48abb3 (patch) | |
tree | 473dab14783e5772da5ac42d321abe1a4e11b4d4 /llvm/lib/CodeGen/LiveIntervalAnalysis.cpp | |
parent | 5973bc8a82dc585b1f08190e4baba389a17a880f (diff) | |
download | llvm-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.cpp | 2 |
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 |