[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