RFR: C2 changes to support Java Object Monitors with Interpreter

Ahmed Muhsin duke at openjdk.org
Thu Oct 12 16:17:48 UTC 2023

Only known issue is with the ProfileInterpreter on however, we implemented a work around: 9bca6603204e94ffac4be450b73610cbaf9eed0f 

Compared jtreg results from jom-master to our PR with ProfileInterpreter off and with ProfileInterpreter on with the work around. Note that with ProfileInterpreter on and no work around jtreg errors out (so that configuration is not included in the test tables below).

See test results in comments.


Commit messages:
 - implement work around for interpreter profile data mismatch bug
 - set ProfileInterpreter to false by default to avoid a bug in the profile data generation
 - only check/kill dead objects in debug build
 - refactor implementation and make use of the ObjectMonitorMode to turn C2 JOM support on/off
 - remove assert that dead locals are killed to prevent crash in some calls to shared_unlock
 - add helper method to JVMState for setting the method after jvms creation; set jvms method before shared_unlock call in do_exits to prevent a crash in add_safepoint_edges which assumes a method pointer exists
 - always expand unlock node into a CallStaticJavaNode. issues exist on some invocations of add_safepoint_edges(unlock) when the jvms has no method
 - Merge pull request #3 from 30harry/jom-c2
 - remove additional handle being created
 - Merge branch 'openjdk:jom-c2' into jom-c2
 - ... and 3 more: https://git.openjdk.org/loom/compare/15434824...9bca6603

Changes: https://git.openjdk.org/loom/pull/206/files
 Webrev: https://webrevs.openjdk.org/?repo=loom&pr=206&range=00
  Stats: 139 lines in 15 files changed: 113 ins; 0 del; 26 mod
  Patch: https://git.openjdk.org/loom/pull/206.diff
  Fetch: git fetch https://git.openjdk.org/loom.git pull/206/head:pull/206

PR: https://git.openjdk.org/loom/pull/206

More information about the loom-dev mailing list