[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