RFR: 8296440: Remove Method* handling from cleanup_inline_caches_impl
Richard Reingruber
rrich at openjdk.org
Wed Mar 1 11:18:47 UTC 2023
This PR replaces cleaning of static stubs in CompiledMethod::cleanup_inline_caches_impl() with a guarantee that it is actually not needed because the holder of the embedded target Method* is alive if the caller nmethod is not unloading.
The holder of the target Method* has to be alive because it is reachable from the caller nmethod's oop pool. This is checked by `check_path_to_callee()` when a statically bound call gets resolved.
C2i entry barriers can be removed for the same reason.
Testing:
Many rounds in our CI testing which includes most JCK and JTREG tests, Renaissance benchmark and SAP specific tests with fastdebug and release builds on the standard platforms plus PPC64.
I've also done tier1 and tier2 tests with -XX:-Inline and tier1 tests with ZGC.
I've started hotspot and jdk tier1 tests with -Xcomp. They were not finished when I stopped them after 24h.
-------------
Commit messages:
- Remove MacroAssembler::resolve_weak_handle()
- Remove keep_alive_offset() and holder_offset() from CLD
- Remove MacroAssembler::load_method_holder_cld()
- Remove c2i entry barrier
- Check dependency for statically bound call
Changes: https://git.openjdk.org/jdk/pull/12802/files
Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=12802&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8296440
Stats: 367 lines in 26 files changed: 74 ins; 283 del; 10 mod
Patch: https://git.openjdk.org/jdk/pull/12802.diff
Fetch: git fetch https://git.openjdk.org/jdk pull/12802/head:pull/12802
PR: https://git.openjdk.org/jdk/pull/12802
More information about the hotspot-dev
mailing list