This is an archive of the discontinued LLVM Phabricator instance.

[AggressiveAntiDepBreaker] Tweak the fix for renaming a subregister of a live register
ClosedPublic

Authored by foad on Aug 2 2023, 5:12 AM.

Details

Summary

This patch tweaks the fix in D20627 "Do not rename registers that do not
start an independent live range" to only consider Data dependencies, not
Output or Anti dependencies. An Output or Anti dependency to a superreg
does not imply that that superreg is live at the current instruction.

This enables breaking anti-dependencies in a few more cases as shown by
the lit test updates.

Diff Detail

Event Timeline

foad created this revision.Aug 2 2023, 5:12 AM
Herald added a project: Restricted Project. · View Herald TranscriptAug 2 2023, 5:12 AM
foad requested review of this revision.Aug 2 2023, 5:12 AM
Herald added a project: Restricted Project. · View Herald TranscriptAug 2 2023, 5:12 AM
foad added a comment.Aug 2 2023, 5:15 AM

I split this out from D156880 just to show the cause of the lit test updates. With this patch applied as a prerequisite, D156880 itself has no effect on the lit tests.

foad added a comment.Aug 7 2023, 6:05 AM

Ping to X86, Hexagon, PowerPC maintainers (the only targets that use aggressive antidep breaking).

qcolombet accepted this revision.Aug 7 2023, 7:23 AM

I'm not super familiar with this code, but that sounds reasonable to me.

This revision is now accepted and ready to land.Aug 7 2023, 7:23 AM
This revision was landed with ongoing or failed builds.Aug 7 2023, 7:41 AM
This revision was automatically updated to reflect the committed changes.