Enable verification of live intervals immediately after computing them
(when -early-live-intervals is used) and fix a problem that that
provokes: currently the verifier insists that a segment that ends at an
early-clobber slot must be followed by another segment starting at the
same slot. But before TwoAddressInstruction runs, the equivalent
condition is: a segment that ends at an early-clobber slot must have its
last use tied to an early-clobber def. That condition is harder to check
here, so for now just disable this check until tied operands have been
rewritten.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
Comment Actions
I assume it is correct, that we want to tweak the rules enforced by the verifier before and after tied ops are rewritten? The alternative is that we actually modify the end points of the live segments, so that they only end at an early-clobber slot after tied ops have been rewritten, but that seems needlessly invasive.
Comment Actions
Yes, before the TwoAddressInstructionass the code is in SSA form which means the def must use a different register than the use of the tied op. This makes sense to me.