RFR: 8296440: Remove Method* handling from cleanup_inline_caches_impl [v4]
Coleen Phillimore
coleenp at openjdk.org
Mon Mar 27 17:22:57 UTC 2023
On Fri, 24 Mar 2023 18:45:13 GMT, Richard Reingruber <rrich at openjdk.org> wrote:
>> 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 pull request now contains 12 commits:
>
> - Merge branch 'master'
> - Fix
> - Feedback Coleene
> - 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()
> - ... and 2 more: https://git.openjdk.org/jdk/compare/4154a980...31bcdb07
The ClassLoaderData parts look good to me.
-------------
Marked as reviewed by coleenp (Reviewer).
PR Review: https://git.openjdk.org/jdk/pull/12802#pullrequestreview-1359539788
More information about the hotspot-dev
mailing list