This is an archive of the discontinued LLVM Phabricator instance.

[TwoAddressInstructionPass] Update existing physreg live intervals
ClosedPublic

Authored by foad on Nov 4 2021, 7:39 AM.

Details

Summary

In TwoAddressInstructionPass::processTiedPairs with
-early-live-intervals, update any preexisting physreg live intervals,
as well as virtreg live intervals. By default (without
-precompute-phys-liveness) physreg live intervals only exist for
registers that are live-in to some basic block.

Diff Detail

Event Timeline

foad created this revision.Nov 4 2021, 7:39 AM
foad requested review of this revision.Nov 4 2021, 7:39 AM
Herald added a project: Restricted Project. · View Herald TranscriptNov 4 2021, 7:39 AM
This revision was not accepted when it landed; it landed in state Needs Review.Nov 5 2021, 2:51 AM
This revision was automatically updated to reflect the committed changes.
foad reopened this revision.Nov 5 2021, 2:57 AM

Fix was pushed prematurely by mistake, so I reverted it.

arsenm accepted this revision.Nov 5 2021, 9:47 AM
arsenm added inline comments.
llvm/lib/CodeGen/TwoAddressInstructionPass.cpp
1555–1557

Having to repeat the code everywhere for virtual and physregs is pretty annoying

This revision is now accepted and ready to land.Nov 5 2021, 9:47 AM