-
Notifications
You must be signed in to change notification settings - Fork 15.3k
Open
Labels
Description
| Bugzilla Link | 11363 |
| Version | trunk |
| OS | All |
Extended Description
InlineSpiller refuses to rematerialize values before a tied use:
tie(Reads, Writes) = MI->readsWritesVirtualRegister(VirtReg.reg, &Ops);
if (Writes) {
for (unsigned i = 0, e = Ops.size(); i != e; ++i) {
MachineOperand &MO = MI->getOperand(Ops[i]);
if (MO.isUse() ? MI->isRegTiedToDefOperand(Ops[i]) : MO.getSubReg()) {
markValueUsed(&VirtReg, ParentVNI);
DEBUG(dbgs() << "\tcannot remat tied reg: " << UseIdx << '\t' << *MI);
return false;
}
}
}
It should remat and insert a spill at the same time.