diff --git a/llvm/lib/CodeGen/InlineSpiller.cpp b/llvm/lib/CodeGen/InlineSpiller.cpp index e797e6953bccc..c62f3db9d3215 100644 --- a/llvm/lib/CodeGen/InlineSpiller.cpp +++ b/llvm/lib/CodeGen/InlineSpiller.cpp @@ -289,11 +289,12 @@ static Register isCopyOfBundle(const MachineInstr &FirstMI, Register Reg, MachineBasicBlock::const_instr_iterator I = FirstMI.getIterator(); while (I->isBundledWithSucc()) { const MachineInstr &MI = *I; - if (!TII.isCopyInstr(FirstMI)) + auto CopyInst = TII.isCopyInstr(MI); + if (!CopyInst) return Register(); - const MachineOperand &DstOp = MI.getOperand(0); - const MachineOperand &SrcOp = MI.getOperand(1); + const MachineOperand &DstOp = *CopyInst->Destination; + const MachineOperand &SrcOp = *CopyInst->Source; if (DstOp.getReg() == Reg) { if (!SnipReg) SnipReg = SrcOp.getReg();