RFR: 8255822: Zero: improve build-time JVMTI handling [v2]
Magnus Ihse Bursie
ihse at openjdk.java.net
Thu Nov 5 07:58:57 UTC 2020
On Thu, 5 Nov 2020 06:39:02 GMT, Aleksey Shipilev <shade at openjdk.org> wrote:
>> Current Zero interpreter has the optimization for JVMTI support. It recognizes that JVMTI is disabled most of the time, and that JVMTI checks in the interpreter code slows it down considerably. (I measured it myself when working on this patch: removing this optimization yields about 20% hit in build times).
>>
>> Current optimization works as follows. At build time, an XSLT transform is performed on `bytecodeInterpreter.cpp`, yielding `bytecodeInterpreterWithChecks.cpp`. In that new compilation unit, `VM_JVMTI` macro is defined, and a new entry point -- `BytecodeInterpreter::withChecks` -- is defined. Then, both compilation units are compiled. In one of them, `JVMTI` hooks are stripped out. In another, they persist. Then, callers have to choose which entry point to use.
>>
>> I believe this can be rewritten to use C++ templates instead of XLST and defines dance. This also allows to clean up JVMTI checks a bit.
>>
>> Additional testing:
>> - [x] Linux x86_64 Zero fastdebug build with `-jvmti`
>> - [x] Linux x86_64 Zero fastdebug/release build times are not regressing
>
> Aleksey Shipilev has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains four commits:
>
> - Fix build error
> - Merge branch 'master' into JDK-8255822-zero-jvmti-rework
> - Revert one dubious change
> - 8255822: Zero: improve build-time JVMTI handling
> Summary: use C++ templates instead of XSLT transforms
Looks good to me. Thanks for the cleanup!
-------------
Marked as reviewed by ihse (Reviewer).
PR: https://git.openjdk.java.net/jdk/pull/1061
More information about the build-dev
mailing list