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