RFR: 8296440: Remove Method* handling from cleanup_inline_caches_impl [v2]
Richard Reingruber
rrich at openjdk.org
Mon Mar 20 17:47:49 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.
Richard Reingruber 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 ten additional commits since the last revision:
- Adding TestStaticallyBoundTargetIsReachable.java
- Path to target exists also if the receiver is a constant of the caller
- Use nmethod::oops_do() to search for to_holder in from_nm
- Merge branch 'master'
- 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:
- all: https://git.openjdk.org/jdk/pull/12802/files
- new: https://git.openjdk.org/jdk/pull/12802/files/8f27bd37..876e55dc
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=12802&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=12802&range=00-01
Stats: 166452 lines in 2166 files changed: 119994 ins; 27292 del; 19166 mod
Patch: https://git.openjdk.org/jdk/pull/12802.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/12802/head:pull/12802
PR: https://git.openjdk.org/jdk/pull/12802
More information about the hotspot-dev
mailing list