This is an archive of the discontinued LLVM Phabricator instance.

[AArch64] NFC : Change the way SVE pseudos are appended
ClosedPublic

Authored by harviniriawan on Jun 30 2023, 9:39 AM.

Details

Summary
  • SVE pseudos don't pick up the right latency information during MI scheduling as the regex do not match with instruction name.
  • Move UNDEF, PSEUDO, and ZERO to the end of actual SVE instruction
  • Some CPUs *td files will be fixed in the next commit

    Differential Revision: https://reviews.llvm.org/D154232

Diff Detail

Event Timeline

harviniriawan created this revision.Jun 30 2023, 9:39 AM
harviniriawan requested review of this revision.Jun 30 2023, 9:39 AM
Herald added a project: Restricted Project. · View Herald TranscriptJun 30 2023, 9:39 AM
Matt added a subscriber: Matt.Jun 30 2023, 4:29 PM

Remember to upload with context, it makes the patch easier to read in phabricator.

I think to make this an NFC the Neoverse-N2 changes would need to be included in this patch too.

harviniriawan retitled this revision from [AArch64] NFC : Change the way pseudos are appended to [AArch64] NFC : Change the way SVE pseudos are appended.
harviniriawan edited the summary of this revision. (Show Details)
paulwalker-arm added inline comments.Jul 3 2023, 5:14 AM
llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td
2144–2146 ↗(On Diff #536718)

This is one example, of many, that makes this patch not NFC because you're changing the scheduling information RSHR_ZPZI_*, which is presumably missing before this point. What I'd like to see is a simple NFC patch where the pseudo instructions have been renamed (as in a literal renaming of the instructions and their uses). Then following patch or patches that update the scheduling modes to increase their coverage of pseudo instructions.

rjj added a subscriber: rjj.Jul 3 2023, 5:57 AM
rjj added inline comments.
llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td
2275 ↗(On Diff #536718)

This match is unnecessary.

2552 ↗(On Diff #536718)

This is repeated, and the same for the two instructions below.

harviniriawan added inline comments.
llvm/lib/Target/AArch64/AArch64SchedNeoverseV2.td
2144–2146 ↗(On Diff #536718)

ok will change it

harviniriawan edited the summary of this revision. (Show Details)Jul 3 2023, 7:41 AM
paulwalker-arm accepted this revision.Jul 3 2023, 11:00 AM
This revision is now accepted and ready to land.Jul 3 2023, 11:00 AM
dmgreen accepted this revision.Jul 4 2023, 1:12 AM

LGTM. Thanks

harviniriawan closed this revision.Jul 4 2023, 2:44 AM