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 Wed, 1 Sep 2021 21:45:26 GMT, Dean Long <dlong at openjdk.org> wrote:
>> 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?
>
> 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?
-------------
PR: https://git.openjdk.java.net/jdk/pull/5270
More information about the hotspot-compiler-dev
mailing list