[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 06:46:27 GMT, Xiaohong Gong <xgong at openjdk.org> wrote:

>> Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   Review comments resolutions.
>
> 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_.

-------------

PR Review Comment: https://git.openjdk.org/valhalla/pull/833#discussion_r1192136554



More information about the valhalla-dev mailing list