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

Chen Liang liach at openjdk.org
Wed Jan 28 03:46:01 UTC 2026


On Wed, 28 Jan 2026 03:11:52 GMT, Dean Long <dlong at openjdk.org> wrote:

>> 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`?

I think once we are not virtual, the native Object::hashCode behaves like System::identityHashCode. The only difference is null check, but I think there's a null check in the beginning so we should be safe.

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

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


More information about the hotspot-dev mailing list