RFR: 8344116: C2: remove slice parameter from LoadNode::make [v8]
Zihao Lin
duke at openjdk.org
Wed Nov 26 08:36:12 UTC 2025
On Tue, 25 Nov 2025 16:30:09 GMT, Zihao Lin <duke at openjdk.org> wrote:
>> src/hotspot/share/opto/callnode.cpp line 1740:
>>
>>> 1738: Node* klass_node = in(AllocateNode::KlassNode);
>>> 1739: Node* proto_adr = phase->transform(new AddPNode(klass_node, klass_node, phase->MakeConX(in_bytes(Klass::prototype_header_offset()))));
>>> 1740: mark_node = LoadNode::make(*phase, control, mem, proto_adr, TypeX_X, TypeX_X->basic_type(), MemNode::unordered);
>>
>> We could assert that C->get_alias_index(kit->type(card_adr) == Compile::AliasIdxRaw
>
> Hi, I give it a try, but it failed pass the test. Is it possible the original version is wrong?
> The mark word will not be `TypeRawPtr::BOTTOM`, it should equal to Klass slice index.
One dump is ` 1368 AddP === _ 196 196 1367 [[ ]] Klass:precise java/util/LinkedHashMap$Entry: 0x0000000918349ca0 (java/util/Map$Entry):Constant:exact+168 *`
-------------
PR Review Comment: https://git.openjdk.org/jdk/pull/24258#discussion_r2563948581
More information about the graal-dev
mailing list