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

Andrew Haley aph at openjdk.org
Mon Oct 14 11:04:29 UTC 2024


On Thu, 10 Oct 2024 01:24:46 GMT, Dean Long <dlong at openjdk.org> wrote:

>> Andrew Haley has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 61 commits:
>> 
>>  - Merge from 4ff72dc57e65e99b129f0ba28196994edf402018
>>  - Fix s390
>>  - Use post-incrememnt RegSet operator.
>>  - Merge branch 'clean' into JDK-8331658-work
>>  - Fix merge
>>  - Merge branch 'clean' into JDK-8331658-work
>>  - Merge from JDK head.
>>  - Cleanup
>>  - Fix shared code
>>  - Fix shared code
>>  - ... and 51 more: https://git.openjdk.org/jdk/compare/4ff72dc5...a7612674
>
> src/hotspot/share/oops/klass.cpp line 406:
> 
>> 404:     }
>> 405:     assert(i == secondaries->length(), "mismatch");
>> 406:     postcond((int)population_count(bitmap) <= secondaries->length());
> 
> This helps explain my confusion reading fallback_search_secondary_supers().  Could we refer to this invariant there?  And could this be strengthened to :
> `population_count(bitmap) == secondaries->length() || (population_count(bitmap) == SECONDARY_SUPERS_TABLE_SIZE && secondaries->length() > SECONDARY_SUPERS_TABLE_SIZE)`
> ?

We can't assert that here, because at this point we know `length <= SECONDARY_SUPERS_TABLE_SIZE - 2`.

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

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


More information about the hotspot-dev mailing list