[lworld+vector] RFR: 8304310: Initial compilers and runtime handling for multifield backed vectors. [v15]
Jatin Bhateja
jbhateja at openjdk.org
Fri May 12 09:34:18 UTC 2023
On Fri, 12 May 2023 09:27:17 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:
>> src/hotspot/share/opto/cfgnode.cpp line 2718:
>>
>>> 2716: new_box_node->as_InlineType()->set_field_value(0, payload_value);
>>> 2717: new_box_node = igvn->transform(new_box_node);
>>> 2718: return new_box_node;
>>
>> Suggestion:
>>
>>
>> const Type* ptype = cached_vbox->field_value(0)->bottom_type();
>>
>> Node* new_payload_phi = igvn->transform(clone_through_phi(root_phi, ptype, 3, igvn));
>> Node* new_vector_phi = igvn->transform(clone_through_phi(new_payload_phi, vtype, 3, igvn));
>> Node* new_vbox_phi = clone_through_phi(root_phi, btype, 1, igvn);
>>
>> return igvn->transform(VectorBoxNode::make_box_node(*igvn, phase->C, new_vbox_phi, new_vector_phi, btype, vtype));
>>
>>
>> Another question: why `igvn->transform()` is used for the first two `clone_through_phi`, while not used for the last one?
>
> We do not need upfront transformation, new node is registered with GVN within _clone_through_phi_.
Modified as suggested.
-------------
PR Review Comment: https://git.openjdk.org/valhalla/pull/833#discussion_r1192136759
More information about the valhalla-dev
mailing list