Integrated: 8269592: [JVMCI] Optimize c2v_iterateFrames

Andreas Woess aw at openjdk.java.net
Wed Jul 14 17:36:21 UTC 2021


On Tue, 29 Jun 2021 17:26:58 GMT, Andreas Woess <aw at openjdk.org> wrote:

> Several smaller optimizations and cleanups to JVMCI's iterateFrames:
> * Restructure the iterateFrames method for better readability and maintenance, with some parts extracted to helper functions.
> * Use vframeStream as the iterator for faster iteration in case not every vframe matches the method filter, so we can avoid creating javaVFrames for skipped vframes. We use vframeStream::asJavaVFrame() to get the current javaVFrame.
> * Extended vframeStream::asJavaVFrame() to also work with native frames, so that it works with all java frames returned by vframeStream. This way, native compiledVFrames will just work and do not need extra handling.
> Test coverage is provided via a newly added iterateFrames jtreg test that includes a JNI call on the stack.
> * Added two trivial getters to vframeStream: vframe_id() and decode_offset().
> These are used together with compiledVFrame::at_scope() to avoid going through vframeStream::asJavaVFrame() and recreating the scope objects for every matched inlined vframe of a compiled frame which would be more expensive than using javaVFrame::sender() (that shares the scope object pool).
> * Only resolve the callback interface method once per iterateFrames call.
> * Only resolve the Method* of the ResolvedJavaMethods to be matched once per iterateFrames call.
> * Only allocate localIsVirtual array if at least one local is virtual (the Java part already expects this).
> * Use matched ResolvedJavaMethod instances instead of going through JVMCIEnv::get_jvmci_method, if possible.

This pull request has now been integrated.

Changeset: b1bb05bc
Author:    Andreas Woess <aw at openjdk.org>
Committer: Tom Rodriguez <never at openjdk.org>
URL:       https://git.openjdk.java.net/jdk/commit/b1bb05bcf4956f38d6e1a15bcfbed92154ba85a2
Stats:     461 lines in 6 files changed: 337 ins; 55 del; 69 mod

8269592: [JVMCI] Optimize c2v_iterateFrames

Reviewed-by: kvn, never, dlong

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

PR: https://git.openjdk.java.net/jdk/pull/4625


More information about the hotspot-dev mailing list