mirror of
https://github.com/RPCS3/llvm.git
synced 2025-03-01 23:25:56 +00:00
[LiveRangeEdit] Handle instructions with no defs correctly.
Summary: The code in LiveRangeEdit::eliminateDeadDef() that computes isOrigDef doesn't handle instructions in which operand 0 is not a def (e.g. KILL) correctly. Add a check that operand 0 is a def before doing the rest of the isOrigDef computation. Reviewers: qcolombet, MatzeB, wmi Subscribers: mcrosier, llvm-commits Differential Revision: https://reviews.llvm.org/D27174 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@288189 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
a89dd1d1c4
commit
81e1a9d383
@ -272,7 +272,8 @@ void LiveRangeEdit::eliminateDeadDef(MachineInstr *MI, ToShrinkSet &ToShrink,
|
||||
bool ReadsPhysRegs = false;
|
||||
bool isOrigDef = false;
|
||||
unsigned Dest;
|
||||
if (VRM && MI->getOperand(0).isReg()) {
|
||||
if (VRM && MI->getOperand(0).isReg() && MI->getOperand(0).isDef()) {
|
||||
assert(MI->getDesc().getNumDefs() == 1);
|
||||
Dest = MI->getOperand(0).getReg();
|
||||
unsigned Original = VRM->getOriginal(Dest);
|
||||
LiveInterval &OrigLI = LIS.getInterval(Original);
|
||||
|
Loading…
x
Reference in New Issue
Block a user