aarch64: Add support for FEAT_CMH atomic store intrinsics
AArch64 support added for atomic store operations with hints using FEAT_CMH extension.
The AArch64 compiler support has been updated to include atomic store intrinsics that utilize hints from the FEAT_CMH extension. The existing atomic_store_with_stshh has been generalized to atomic_store_with_hint, allowing it to accommodate new hints like STCPH. This enhancement aims to improve performance for atomic store operations.
In Details
This commit generalizes the AArch64 atomic store intrinsic handling by refactoring atomic_store_with_stshh into a more generic atomic_store_with_hint in aarch64-builtins.cc. This allows the integration of new hints, such as STCPH, introduced by the FEAT_CMH extension. The changes involve updating builtins definitions in arm_acle.h, modifying patterns in atomics.md to support these new hints, and updating related test cases. The goal is to provide more performance tuning options for atomic stores.
- AArch64
- The 64-bit ARM architecture instruction set.
- Atomic operation
- An operation that is guaranteed to be performed indivisibly, ensuring that it completes entirely without interruption from other threads or processes. Crucial for concurrent programming.
- Intrinsic
- A special function provided by a compiler that maps directly to a specific hardware instruction or a small sequence of instructions. They offer performance benefits by bypassing function call overhead.
- FEAT_CMH
- A specific feature extension for the AArch64 architecture, providing new instructions and hints for enhanced performance, particularly in atomic operations.
- STCPH
- A specific hint associated with the FEAT_CMH extension on AArch64, designed to influence the behavior of atomic store operations for potential performance gains.
- Atomic store
- An atomic operation that writes a value to a memory location. Ensures that the write is completed without interference from other threads.