RFR: 8361890: Aarch64: Removal of redundant dmb from C1 AtomicLong methods
Marc Chevalier
mchevalier at openjdk.org
Mon Jul 21 09:07:42 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.
It took a bit, but I'm back! I've run tier 1..3 and some internal testing, and it's passing everything.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/26245#issuecomment-3095293982
More information about the hotspot-compiler-dev
mailing list