RFR: 8331341: secondary_super_cache does not scale well: C1 and interpreter [v2]
Vladimir Ivanov
vlivanov at openjdk.org
Thu Jul 18 19:07:33 UTC 2024
On Thu, 18 Jul 2024 16:40:47 GMT, Andrew Haley <aph at openjdk.org> wrote:
>> src/hotspot/cpu/aarch64/macroAssembler_aarch64.hpp line 1040:
>>
>>> 1038:
>>> 1039: // Secondary subtype checking
>>> 1040: void lookup_secondary_supers_table(Register sub_klass,
>>
>> While browsing the code, I noticed that it's far from evident at call sites which overload is used (especially with so many arguments). Does it make sense to avoid method overloads here and use distinct method names instead?
>
> So I confess: this is surely true, but I failed to think of a name for the known- and unknown-at-compile-time versions. maybe `check_const_klass_subtype_slow_path_table` and `check_var_klass_subtype_slow_path_table` ?
Another idea: `lookup_secondary_supers_table_var` vs `lookup_secondary_supers_table_const`.
Or `lookup_secondary_supers_table_super_var` vs `lookup_secondary_supers_table_super_const`.
>> src/hotspot/cpu/aarch64/stubGenerator_aarch64.cpp line 1981:
>>
>>> 1979: __ load_klass(r19_klass, copied_oop);// query the object klass
>>> 1980:
>>> 1981: BLOCK_COMMENT("type_check:");
>>
>> Why don't you move it inside `generate_type_check`?
>
> Sorry, what? Do you mean move just this block comment?
No, the whole piece with `if (UseSecondarySupersTable) { ... } else { ... }` included.
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/19989#discussion_r1683349665
PR Review Comment: https://git.openjdk.org/jdk/pull/19989#discussion_r1683348239
More information about the core-libs-dev
mailing list