RFR: 8329597: C2: Intrinsify Reference.clear [v4]
Aleksey Shipilev
shade at openjdk.org
Mon Sep 30 16:36:20 UTC 2024
> [JDK-8240696](https://bugs.openjdk.org/browse/JDK-8240696) added the native method for `Reference.clear`. The original patch skipped intrinsification of this method, because we thought `Reference.clear` is not on a performance sensitive path. However, it shows up prominently on simple benchmarks that touch e.g. `ThreadLocal` cleanups. See the bug for an example profile with `RRWL` benchmarks.
>
> We need to know the actual oop strongness/weakness before we call into C2 Access API, this work models this after existing code for `refersTo0` intrinsics. C2 Access also need a support for `AS_NO_KEEPALIVE` for stores.
>
> Additional testing:
> - [x] Linux x86_64 server fastdebug, `all`
> - [x] Linux AArch64 server fastdebug, `all`
Aleksey Shipilev 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 eight additional commits since the last revision:
- Attempt at implementing ZGC AArch64 parts
- Merge branch 'master' into JDK-8329597-intrinsify-reference-clear
- Amend the test case for guaranteing it works under different compilation regimes
- More precise barriers
- Tests work
- More touchups
- Fixing the conditions, fixing the tests
- Crude prototype, still failing the tests
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/20139/files
- new: https://git.openjdk.org/jdk/pull/20139/files/437f2329..cba0a8e9
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=20139&range=03
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=20139&range=02-03
Stats: 258786 lines in 3084 files changed: 211178 ins; 30411 del; 17197 mod
Patch: https://git.openjdk.org/jdk/pull/20139.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/20139/head:pull/20139
PR: https://git.openjdk.org/jdk/pull/20139
More information about the hotspot-dev
mailing list