[all-commits] [llvm/llvm-project] 34f5f2: [AArch64] Implement the atomic store with hint int...
Kerry McLaughlin via All-commits
all-commits at lists.llvm.org
Thu Sep 24 06:27:02 PDT 2026
Branch: refs/heads/main
Home: https://github.com/llvm/llvm-project
Commit: 34f5f2c594111e6a3edf65673c3ea2849e96e2cb
https://github.com/llvm/llvm-project/commit/34f5f2c594111e6a3edf65673c3ea2849e96e2cb
Author: Kerry McLaughlin <kerry.mclaughlin at arm.com>
Date: 2026-09-24 (Thu, 24 Sep 2026)
Changed paths:
M clang/include/clang/Basic/BuiltinsAArch64.td
M clang/include/clang/Basic/DiagnosticSemaKinds.td
M clang/include/clang/Sema/Sema.h
M clang/include/clang/Sema/SemaARM.h
M clang/lib/CodeGen/TargetBuiltins/ARM.cpp
M clang/lib/Headers/arm_acle.h
M clang/lib/Sema/SemaARM.cpp
M clang/lib/Sema/SemaChecking.cpp
A clang/test/CodeGen/AArch64/atomic-store-hint-template.cpp
M clang/test/CodeGen/arm_acle.c
M clang/test/CodeGen/builtins-arm64.c
M clang/test/Sema/builtins-arm64.c
A llvm/include/llvm/Support/AArch64MemoryHints.h
M llvm/lib/CodeGen/AtomicExpandPass.cpp
M llvm/lib/Target/AArch64/AArch64AsmPrinter.cpp
M llvm/lib/Target/AArch64/AArch64ISelDAGToDAG.cpp
M llvm/lib/Target/AArch64/AArch64ISelLowering.cpp
M llvm/lib/Target/AArch64/AArch64InstrAtomics.td
M llvm/lib/Target/AArch64/AArch64InstrInfo.cpp
M llvm/lib/Target/AArch64/AArch64InstrInfo.h
A llvm/test/CodeGen/AArch64/Atomics/aarch64-atomic-store-hint.ll
A llvm/test/CodeGen/AArch64/Atomics/aarch64-relaxed-store-hint.ll
A llvm/test/CodeGen/AArch64/Atomics/atomic-store-pseudo.mir
Log Message:
-----------
[AArch64] Implement the atomic store with hint intrinsic (#198316)
Adds the following ACLE intrinsic as described in [1]:
void __arm_atomic_store_with_hint(type *ptr, type data,
int memory_order, int hint);
An atomic store instruction is emitted in Clang for this builtin with additional
metadata attached with !mem.cache_hint, which ensures the instruction is
recognised as atomic by later passes in LLVM. When an atomic store is found
with this metadata, it is lowered to the ATOMIC_STORE_HINT pseudo which is
later expanded into an STSHH instruction plus an atomic store.
The hint is a suggestion to the compiler and maps directly to a specific hint
instruction variant in the ISA. The compiler may use this hint when selecting
code sequences, but it is not required to emit a specific hint instruction or a
specific instruction sequence.
Supported atomic store hints are currently:
HINT_STSHH_KEEP: Requests retention of the updated location in the
local cache of the updating PE.
HINT_STSHH_STRM: Requests that the updated location not be retained
in the local cache of the updating PE.
[1] https://github.com/ARM-software/acle/pull/432
To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications
More information about the All-commits
mailing list