[LiveIntervals] Fix asan debug build failures

Call RemoveMachineInstrFromMaps before erasing instrs.
repairIntervalsInRange will do this for you after erasing the
instruction, but it's not safe to rely on it because assertions in
SlotIndexes::removeMachineInstrFromMaps refer to fields in the erased
instruction.

This fixes asan buildbot failures caused by D110328.
This commit is contained in:
Jay Foad 2021-09-24 18:43:17 +01:00
parent ff0b62dd88
commit ac51ad24a7
1 changed files with 5 additions and 0 deletions

View File

@ -1283,6 +1283,8 @@ tryInstructionTransform(MachineBasicBlock::iterator &mi,
if (MO.isReg())
OrigRegs.push_back(MO.getReg());
}
LIS->RemoveMachineInstrFromMaps(MI);
}
MI.eraseFromParent();
@ -1717,6 +1719,9 @@ eliminateRegSequence(MachineBasicBlock::iterator &MBBI) {
for (int j = MI.getNumOperands() - 1, ee = 0; j > ee; --j)
MI.RemoveOperand(j);
} else {
if (LIS)
LIS->RemoveMachineInstrFromMaps(MI);
LLVM_DEBUG(dbgs() << "Eliminated: " << MI);
MI.eraseFromParent();
}