[jdk17u-dev] RFR: 8280481: Duplicated stubs to interpreter for static calls

Paul Hohensee phh at openjdk.org
Thu Oct 13 22:10:16 UTC 2022


On Tue, 11 Oct 2022 18:53:21 GMT, Evgeny Astigeevich <eastigeevich at openjdk.org> wrote:

> This is a backport of shared stubs to the interpreter for statically bound Java methods calls.
> Stubs to the interpreter are used when an invoked Java method is not compiled.
> 
> The full description of the changes and improvements in saving nmethod memory can be found in https://github.com/openjdk/jdk/pull/8816
> 
> The backport contains implementations for the aarch64, x86 and x86_64 backends. Other backends are guarded with `Unimplemented()` calls and `constexpr supports_shared_stubs()` returning `false`.
> 
> A risk is between low and moderate. Performance regressions are unlikely because stubs are used to go to the interpreter which will be the main contributor to the  execution time. Crashes are unlikely because we either successfully generate a shared stub during compilation or fail. If generation fails, there will be no compiled method with missing stubs.
> 
> Tested with fastdebug and release builds on aarch64, x86 and x86_64:
> - `gtest`: Passed
> - `tier1`, `tier2`: Passed
> 
> The backport can be considered clean. `git backport` conflicts were caused by changes positioning issues.

Agree the backport is clean. Lgtm.

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

Marked as reviewed by phh (Reviewer).

PR: https://git.openjdk.org/jdk17u-dev/pull/780


More information about the jdk-updates-dev mailing list