This is an archive of the discontinued LLVM Phabricator instance.

[AArch64] Assembly support for FEAT_LRCPC3
ClosedPublic

Authored by tmatheson on Nov 23 2022, 8:06 AM.

Details

Summary

This patch implements assembly support for the 2022 A-Profile Architecture
extension FEAT_LRCPC3. FEAT_LRCPC3 is AArch64 only and introduces new
variants of load/store instructions with release consistency ordering.

Specs for individual instructions can be found here:
https://developer.arm.com/documentation/ddi0602/2022-09/Base-Instructions/

This feature is optionally available from v8.2a and therefore not enabled by
default.

Contributors:

Lucas Prates
Sam Elliot
Son Tuan Vu
Tomas Matheson

Diff Detail

Event Timeline

tmatheson created this revision.Nov 23 2022, 8:06 AM
Herald added a project: Restricted Project. · View Herald TranscriptNov 23 2022, 8:06 AM
tmatheson requested review of this revision.Nov 23 2022, 8:06 AM
Herald added projects: Restricted Project, Restricted Project. · View Herald TranscriptNov 23 2022, 8:06 AM
lenary accepted this revision.Nov 24 2022, 3:56 AM

Some comment nits that you can fixup on commit.

llvm/lib/Target/AArch64/AArch64InstrInfo.td
3915

Maybe?

Maybe also clarify that GPR64sp0 is not appropriate because it parses and discards the optional zero.

8560

nit: Please remove this comment, it doesn't correspond to anything in the spec, and I don't think it's helpful.

This revision is now accepted and ready to land.Nov 24 2022, 3:56 AM
dmgreen added inline comments.Nov 24 2022, 4:28 AM
llvm/lib/Target/AArch64/AArch64InstrFormats.td
11772

One extra nit: Can we add a scheduling description? These sound like they can use WriteAtomic.

lenary added inline comments.Nov 24 2022, 5:23 AM
llvm/lib/Target/AArch64/AArch64InstrInfo.td
8576

Additional comment: can you change the order of (outs here, as most writeback instructions seem to make their writeback register the first of the outs. A good example is LDRXpost in the fully-expanded tablegen.

tschuett added inline comments.
llvm/lib/Target/AArch64/AArch64.td
510

Nice feature, but the text is quite long with a lot of and s

tmatheson marked 3 inline comments as done.

Address comments and change instruction names

lenary accepted this revision.Nov 25 2022, 10:38 AM
tmatheson marked 2 inline comments as done.Nov 25 2022, 10:56 AM
This revision was landed with ongoing or failed builds.Nov 25 2022, 10:59 AM
This revision was automatically updated to reflect the committed changes.