This is an archive of the discontinued LLVM Phabricator instance.

[AArch64][GISel] Lower llvm.prefetch
ClosedPublic

Authored by lenary on Aug 17 2022, 10:48 AM.

Details

Summary

This change adds support for lowering llvm.prefetch directly using
GlobalISel. Currently, llvm.prefetch falls back to SelectionDAG.

This Change:

  • Adds an AArch64-specific G_PREFETCH generic instruction, to be used where AArch64ISD::PREFETCH is used in SelectionDAG.
  • Adds the GINodeEquiv so patterns are translated over to GlobalISel automatically.
  • Corrects the AArch64Prefetch patterns to use a target immediate, which is needed to get the patterns to translate across correctly.
  • Translates the SelectionDAG legalisation of the prefetch intrinsic into the corresponding GlobalISel legalisation.

Depends on D132042

Diff Detail

Event Timeline

lenary created this revision.Aug 17 2022, 10:48 AM
Herald added a project: Restricted Project. · View Herald TranscriptAug 17 2022, 10:48 AM
lenary requested review of this revision.Aug 17 2022, 10:48 AM
Herald added a project: Restricted Project. · View Herald TranscriptAug 17 2022, 10:48 AM
paquette accepted this revision.Aug 17 2022, 10:57 AM

LGTM, thank you!

This revision is now accepted and ready to land.Aug 17 2022, 10:57 AM
This revision was landed with ongoing or failed builds.Aug 19 2022, 1:12 AM
This revision was automatically updated to reflect the committed changes.