[PATCH] D126250: [CodeGen][AArch64] Add support for LDAPR

Eli Friedman via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Thu May 26 10:53:18 PDT 2022


efriedma accepted this revision.
efriedma added a comment.
This revision is now accepted and ready to land.

LGTM

Looked it up; apparently ldapr is specifically designed to correspond to C++ "acquire".  See https://community.arm.com/arm-community-blogs/b/architectures-and-processors-blog/posts/armv8-a-architecture-2016-additions .  And papers on formal models for atomics refer to the mapping of "acquire" loads to ldapr.  So I think we're fine there.  (And interoperation between old and new code should just work; ldapr is just ldar with the ordering requirements slightly relaxed.)

If you're interested in the performance of atomics, you might also want to look at adding patterns for the armv8.4 variants of ldapr/stlr, which take an immediate offset.


Repository:
  rG LLVM Github Monorepo

CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D126250/new/

https://reviews.llvm.org/D126250



More information about the llvm-commits mailing list