diff options
author | Wei Mi <wmi@google.com> | 2016-04-15 23:16:44 +0000 |
---|---|---|
committer | Wei Mi <wmi@google.com> | 2016-04-15 23:16:44 +0000 |
commit | 963f2df4d2aaa5e76aa6c0bc52f3de66af7be8c4 (patch) | |
tree | 6acd7dacd2443a1ff01f9c257c82bed1c9d83ebe /llvm/lib/CodeGen/LiveRangeEdit.cpp | |
parent | 6d09f993c266398d9bcfee6d71a03132167a01cd (diff) | |
download | bcm5719-llvm-963f2df4d2aaa5e76aa6c0bc52f3de66af7be8c4.tar.gz bcm5719-llvm-963f2df4d2aaa5e76aa6c0bc52f3de66af7be8c4.zip |
Don't skip splitSeparateComponents in eliminateDeadDefs for HoistSpillHelper::hoistAllSpills.
Because HoistSpillHelper::hoistAllSpills is called in postOptimization, before the
patch we didn't want LiveRangeEdit::eliminateDeadDefs to call splitSeparateComponents
and generate unassigned new vregs. However, skipping splitSeparateComponents will make
verify-machineinstrs unhappy, so I remove the early return, and use
HoistSpillHelper::LRE_DidCloneVirtReg to assign physreg/stackslot for those new vregs.
In addition, some code reorganization to make class HoistSpillHelper privately inheriting
from LiveRangeEdit::Delegate possible. This is to be consistent with class RAGreedy and
class RegisterCoalescer.
Differential Revision: http://reviews.llvm.org/D19142
llvm-svn: 266489
Diffstat (limited to 'llvm/lib/CodeGen/LiveRangeEdit.cpp')
-rw-r--r-- | llvm/lib/CodeGen/LiveRangeEdit.cpp | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/llvm/lib/CodeGen/LiveRangeEdit.cpp b/llvm/lib/CodeGen/LiveRangeEdit.cpp index 987c2891544..3ed02f46c0e 100644 --- a/llvm/lib/CodeGen/LiveRangeEdit.cpp +++ b/llvm/lib/CodeGen/LiveRangeEdit.cpp @@ -356,8 +356,7 @@ void LiveRangeEdit::eliminateDeadDef(MachineInstr *MI, ToShrinkSet &ToShrink) { } void LiveRangeEdit::eliminateDeadDefs(SmallVectorImpl<MachineInstr *> &Dead, - ArrayRef<unsigned> RegsBeingSpilled, - bool NoSplit) { + ArrayRef<unsigned> RegsBeingSpilled) { ToShrinkSet ToShrink; for (;;) { @@ -379,9 +378,6 @@ void LiveRangeEdit::eliminateDeadDefs(SmallVectorImpl<MachineInstr *> &Dead, if (!LIS.shrinkToUses(LI, &Dead)) continue; - if (NoSplit) - continue; - // Don't create new intervals for a register being spilled. // The new intervals would have to be spilled anyway so its not worth it. // Also they currently aren't spilled so creating them and not spilling |