RFR: 8372845: C2: Fold identity hash code if object is constant [v6]

Dean Long dlong at openjdk.org
Wed Jan 28 03:14:45 UTC 2026


On Mon, 26 Jan 2026 19:37:06 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 incrementally with one additional commit since the last revision:
> 
>   Use UpperCamelCase

src/hotspot/share/opto/library_call.cpp line 4791:

> 4789:   const TypeInstPtr* t = _gvn.type(obj)->isa_instptr();
> 4790:   if (t != nullptr && t->const_oop() != nullptr) {
> 4791:     assert(!is_virtual, "no devirtualization for constant receiver?");

Don't we also need to check for `is_static`, to distinguish between `Object.hashCode` and `System.identityHashCode`?

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

PR Review Comment: https://git.openjdk.org/jdk/pull/28589#discussion_r2734670836


More information about the hotspot-dev mailing list