This is an archive of the discontinued LLVM Phabricator instance.

[TwoAddressInstruction] Fix stale LiveVariables info in processStatepoint
ClosedPublic

Authored by foad on Oct 21 2022, 6:11 AM.

Details

Summary

D129213 improves verification of LiveVariables, and caused
CodeGen/X86/statepoint-cmp-sunk-past-statepoint.ll to fail with:

  • Bad machine code: LiveVariables: Block should not be in AliveBlocks ***

after Two-Address instruction pass.

Fix it by clearing AliveBlocks for a register which is no longer used.

Diff Detail

Event Timeline

foad created this revision.Oct 21 2022, 6:11 AM
Herald added a project: Restricted Project. · View Herald TranscriptOct 21 2022, 6:11 AM
foad requested review of this revision.Oct 21 2022, 6:11 AM
Herald added a project: Restricted Project. · View Herald TranscriptOct 21 2022, 6:11 AM

LGTM.
(We perhaps should have removed RegA completely from MRI, LiveVariables etc, but I did not find interface for this. Are Registers append-only?)

dantrushin accepted this revision.Oct 21 2022, 6:42 AM
This revision is now accepted and ready to land.Oct 21 2022, 6:42 AM
This revision was landed with ongoing or failed builds.Oct 21 2022, 7:00 AM
This revision was automatically updated to reflect the committed changes.