RFR: 8282049: AArch64: Use ZR for integer zero immediate volatile stores [v3]

Dmitry Chuyko dchuyko at openjdk.java.net
Fri Feb 18 08:31:36 UTC 2022


> Rules and encodings for volatile stores of immediate zero byte, char, int, long and pointers were added in aarch64.ad. E.g. storeimmN0_volatile() and aarch64_enc_stlrw0(). They use stlr instructions with ZR similar to what is already done for non-volatile zero stores and str instructions.
> 
> So for example
> 
> mov x13, xzr
> stlr x13, [x11]
> 
> turns into
> 
> stlr xzr [x11]
> 
> There's no direct effect in dedicated micro-benchmarks on N1 but 1 register and 1 instruction are saved.
> 
> Testing: jtreg tier1, tier2, applications/jcstress on bare metal Graviton 2.

Dmitry Chuyko has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains three additional commits since the last revision:

 - Merge branch 'openjdk:master' into JDK-8282049
 - Merge branch 'openjdk:master' into JDK-8282049
 - Added rules for stlr zr, mem

-------------

Changes:
  - all: https://git.openjdk.java.net/jdk/pull/7515/files
  - new: https://git.openjdk.java.net/jdk/pull/7515/files/3a7d3dd4..179c0fe1

Webrevs:
 - full: https://webrevs.openjdk.java.net/?repo=jdk&pr=7515&range=02
 - incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=7515&range=01-02

  Stats: 828 lines in 24 files changed: 634 ins; 120 del; 74 mod
  Patch: https://git.openjdk.java.net/jdk/pull/7515.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/7515/head:pull/7515

PR: https://git.openjdk.java.net/jdk/pull/7515


More information about the hotspot-compiler-dev mailing list