On Mon, 22 Jun 2026 21:19:24 GMT, Chen Liang <[email protected]> wrote:

>> src/hotspot/share/opto/library_call.cpp line 3191:
>> 
>>> 3189: 
>>> 3190:   Node* map_addr = basic_plus_adr(mirror, field_map_offset);
>>> 3191:   const TypeAryPtr* val_type = 
>>> TypeAryPtr::INTS->cast_to_ptr_type(TypePtr::NotNull)->with_offset(0);
>> 
>> Is the result of this load (the field map array) treated as stable? Maybe:
>> 
>> Suggestion:
>> 
>>   const TypeAryPtr* val_type = 
>> TypeAryPtr::INTS->cast_to_ptr_type(TypePtr::NotNull)->with_offset(0)->cast_to_stable(true);
>> 
>> 
>> I think this would allow folding subsequent loads from the array in 
>> `LoadNode::Value`.
>
> I think this is already effectively stable here: 
> https://github.com/openjdk/valhalla/blob/8d024554dcd58d1b019a8d5b89cb6110c4216f2d/src/hotspot/share/classfile/classFileParser.cpp#L1611

But in the intrinsic code the type is not created from the field descriptor, 
it's just `TypeAryPtr::INTS` plus some extra stuff

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

PR Review Comment: https://git.openjdk.org/jdk/pull/31123#discussion_r3456015491

Reply via email to