RFR: 8271911: replay compilations of methods which use JSR292 (easy cases) [v2]

Vladimir Ivanov vlivanov at openjdk.java.net
Wed Sep 1 13:08:45 UTC 2021


On Mon, 30 Aug 2021 22:55:56 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> ;
>
> Dean Long has updated the pull request incrementally with one additional commit since the last revision:
> 
>   rename LocPusher --> RecordLocation, add comments

Very nice work, Dean!

src/hotspot/share/ci/ciEnv.cpp line 1537:

> 1535: 
> 1536:   // Iterate over the class hierarchy
> 1537:   for (ClassHierarchyIterator iter(vmClasses::Object_klass()); !iter.done(); iter.next()) {

Why do you iterate over the whole class hierarchy instead of inspecting only those classes which are present in CI?

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

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


More information about the hotspot-compiler-dev mailing list