RFR: 8336489: Track scoped accesses in JVMCI compiled code

Carlo Refice duke at openjdk.org
Fri Jul 19 15:50:57 UTC 2024


This PR adds JVMCI support to scoped access tracking introduced in #20158.

In this PR:
* The `Method::is_scoped` flag is now exposed in JVMCI as `HotSpotResolvedJavaMethod.isScoped()`, and serialized to / deserialized from the JVMCI compiled code stream as a boolean flag.
* To determine whether a compiled method has a scoped access, we simply check `HotSpotResolvedJavaMethod.isScoped()` returns `true` for the root method or any of the methods that were inlined in the compilation.
* The above check is implemented as the method `HotSpotCompiledNMethod.hasScopedAccess()`, instead of as an explicit flag set in a the constructor of `HotSpotCompiledNMethod`. This keeps the change isolated to JVMCI, without requiring coordinated changes to the Graal compiler. No other changes in the compiler are necessary to benefit from the optimization.

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

Commit messages:
 - Track scoped accesses in JVMCI compiled code

Changes: https://git.openjdk.org/jdk/pull/20256/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=20256&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8336489
  Stats: 48 lines in 9 files changed: 43 ins; 0 del; 5 mod
  Patch: https://git.openjdk.org/jdk/pull/20256.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/20256/head:pull/20256

PR: https://git.openjdk.org/jdk/pull/20256


More information about the hotspot-compiler-dev mailing list