RFR: 8372845: C2: Fold identity hash code if object is constant [v4]
Quan Anh Mai
qamai at openjdk.org
Tue Dec 16 02:31:57 UTC 2025
On Mon, 15 Dec 2025 19:49:52 GMT, Chen Liang <liach at openjdk.org> wrote:
>> Folding identity hash as constant if the incoming argument is constant would be useful for quick map lookups, such as for the [Classifier proposal](https://openjdk.org/jeps/8357674). Currently, identity hash is not constant because it loads the object header/mark word. We can add an explicit bypass to load an existing hash eagerly instead.
>
> Chen Liang has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 12 additional commits since the last revision:
>
> - Move test, fix merge garbage
> - Merge branch 'master' of https://github.com/openjdk/jdk into fix/identity-hash-const
> - Merge branch 'master' of https://github.com/openjdk/jdk into fix/identity-hash-const
> - Typo
> - assert
> - refactorings
> - Typo
> - Merge branch 'master' of https://github.com/openjdk/jdk into fix/identity-hash-const
> - Cleanup
> - identity hash support in C2
> - ... and 2 more: https://git.openjdk.org/jdk/compare/c026ba9b...67a3954f
src/hotspot/share/opto/library_call.cpp line 4806:
> 4804: assert(!is_virtual, "no devirtualization for constant receiver?");
> 4805: ciConstant identity_hash = t->const_oop()->identity_hash();
> 4806: if (identity_hash.is_valid()) {
Is there any reason we don't calculate the identity hash right away if there is not any?
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/28589#discussion_r2621527376
More information about the hotspot-dev
mailing list