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
