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