[jdk17u-dev] RFR: 8280481: Duplicated stubs to interpreter for static calls
Evgeny Astigeevich
eastigeevich at openjdk.org
Tue Oct 11 19:35:30 UTC 2022
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
-------------
Commit messages:
- Backport 351560414d7ddc0694126ab184bdb78be604e51f
Changes: https://git.openjdk.org/jdk17u-dev/pull/780/files
Webrev: https://webrevs.openjdk.org/?repo=jdk17u-dev&pr=780&range=00
Issue: https://bugs.openjdk.org/browse/JDK-8280481
Stats: 483 lines in 21 files changed: 451 ins; 5 del; 27 mod
Patch: https://git.openjdk.org/jdk17u-dev/pull/780.diff
Fetch: git fetch https://git.openjdk.org/jdk17u-dev pull/780/head:pull/780
PR: https://git.openjdk.org/jdk17u-dev/pull/780
More information about the jdk-updates-dev
mailing list