Integrated: 8361890: Aarch64: Removal of redundant dmb from C1 AtomicLong methods
Samuel Chee
duke at openjdk.org
Tue Aug 19 23:51:46 UTC 2025
On Thu, 10 Jul 2025 15:49:40 GMT, Samuel Chee <duke at openjdk.org> wrote:
> The current C1 implementation of AtomicLong methods
> which either adds or exchanges (such as getAndAdd)
> emit one of a ldaddal and swpal respectively when using
> LSE as well as an immediately proceeding dmb. Since
> ldaddal/swpal have both acquire and release semantics,
> this provides similar ordering guarantees to a dmb.full
> so the dmb here is redundant and can be removed.
>
> This is due to both clause 7 and clause 11 of the
> definition of Barrier-ordered-before in B2.3.7 of the
> DDI0487 L.a Arm Architecture Reference Manual for A-profile
> architecture being satisfied by the existence of a
> ldaddal/swpal which ensures such memory ordering guarantees.
This pull request has now been integrated.
Changeset: 95577ca9
Author: Samuel Chee <samche01 at arm.com>
Committer: Dean Long <dlong at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/95577ca97f82a5a83e86ed932c7c42b644d32cca
Stats: 3 lines in 1 file changed: 2 ins; 0 del; 1 mod
8361890: Aarch64: Removal of redundant dmb from C1 AtomicLong methods
Reviewed-by: aph, dlong
-------------
PR: https://git.openjdk.org/jdk/pull/26245
More information about the hotspot-compiler-dev
mailing list