Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8361890

Aarch64: Removal of redundant dmb from C1 AtomicLong methods

XMLWordPrintable

    • Icon: Enhancement Enhancement
    • Resolution: Unresolved
    • Icon: P4 P4
    • tbd
    • 26
    • hotspot
    • None
    • aarch64
    • generic

      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.

            smonteith Stuart Monteith
            smonteith Stuart Monteith
            Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

              Created:
              Updated: