RFR: 8331341: secondary_super_cache does not scale well: C1 and interpreter [v23]

Dean Long dlong at openjdk.org
Thu Oct 10 00:06:22 UTC 2024


On Wed, 9 Oct 2024 23:49:17 GMT, Dean Long <dlong at openjdk.org> wrote:

>> src/hotspot/cpu/aarch64/macroAssembler_aarch64.cpp line 1820:
>> 
>>> 1818:   // mov(r_array_index, (u1)(Klass::SECONDARY_SUPERS_TABLE_SIZE - 1));
>>> 1819:   // sub(slot, r_array_index, slot);
>>> 1820:   eor(slot, slot, (u1)(Klass::SECONDARY_SUPERS_TABLE_SIZE - 1));
>> 
>> Should we assert SECONDARY_SUPERS_TABLE_SIZE is a power of 2 here?
>
> If we used temp2 to store (Klass::SECONDARY_SUPERS_TABLE_SIZE - 1 - slot), then I think we could avoid the XOR at line 1863.

Or even better, can't we rotate right and then TBZ on bit 0?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/19989#discussion_r1794406475


More information about the hotspot-dev mailing list