RFR: 8271911: replay compilations of methods which use JSR292 (easy cases)
Vladimir Kozlov
kvn at openjdk.java.net
Mon Aug 30 19:55:30 UTC 2021
On Thu, 26 Aug 2021 23:11:44 GMT, Dean Long <dlong at openjdk.org> wrote:
> There is a subset of the general problem that we should be able to solve by looking at invokedynamic/invokehandle call sites and MethodHandle constant pool entries. If a replay references a hidden class that is discoverable in one of those locations, then we can use the location as a replacement for the transient VM name.
>
> Examples of references to hidden class locations:
>
> @bci compiler/ciReplay/CiReplayBase$TestMain test (I)V 1 <appendix> argL0 ;
> @bci compiler/ciReplay/CiReplayBase$TestMain main ([Ljava/lang/String;)V 0 <appendix> form vmentry <vmtarget> ;
> @cpi compiler/ciReplay/CiReplayBase$TestMain 56 form vmentry <vmtarget> ;
In general this looks good.
My only complain is lack of comments. It difficult to understand what happens in code.
src/hotspot/share/ci/ciEnv.cpp line 178:
> 176: }
> 177:
> 178: class LocPusher {
This needs big comment explaining what this does and how it helps replay.
And I don't like the name. May be `RecordLocaiton`.
-------------
PR: https://git.openjdk.java.net/jdk/pull/5270
More information about the hotspot-compiler-dev
mailing list