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

Vladimir Ivanov vlivanov at openjdk.java.net
Thu Sep 2 12:42:28 UTC 2021


On Thu, 2 Sep 2021 12:35:41 GMT, Vladimir Ivanov <vlivanov at openjdk.org> wrote:

>> Good question.  It is because of the section in ciInstanceKlass::dump_replay_data that dumps subclasses.  If one of the CI classes is java.lang.Object, we can get a lot of hidden classes dumped there from startup that are unrelated to the current compile.  I wanted to see how many I could find as a proof of concept / stress test.  My plan is to see if we can completely do without subclass dumping there by dumping better CHA information (JDK-8261192).
>
> I still miss the connection between `ciInstanceKlass::dump_replay_data()` and `ciEnv::find_dynamic_call_sites()` cases. 
> 
> `ciEnv::find_dynamic_call_sites()` dumps all invokedynamic and invokehandle (MH.invoke*()) call sites and MethodHandle CP Constants across the class hierarchy. Any particular benefit compared to just dumping that info on per ciInstanceKlass granularity?

Also, one more question: why do you dump MethodHandle CP constants and invokehandle call sites? Is it to record the connection between MethodHandle instances and hidden classes behind LambdaForms they are implemented with?

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

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


More information about the hotspot-compiler-dev mailing list