[lworld+vector] RFR: 8304310: Initial compilers and runtime handling for multifield backed vectors. [v3]
Jatin Bhateja
jbhateja at openjdk.org
Fri Apr 7 00:53:11 UTC 2023
On Thu, 30 Mar 2023 04:03:07 GMT, Xiaohong Gong <xgong at openjdk.org> wrote:
>> Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Extend ci model to capture synthetic multi-fields, these are used for scalarization if target does not support load/store bundle size.
>
> src/hotspot/share/opto/inlinetypenode.cpp line 497:
>
>> 495: assert(is_java_primitive(bt) || adr->bottom_type()->is_ptr_to_narrowoop() == UseCompressedOops, "inconsistent");
>> 496: if (value->bottom_type()->isa_vect()) {
>> 497: Node* store = kit->gvn().transform(StoreVectorNode::make(0, kit->control(), kit->memory(adr), adr, adr_type, value, vec_len));
>
> Does it need to check the Op_StoreVector supported or not here?
Checks are done at the time of inline type IR creation.
> Thanks for the updating! So the correspond `expand_vunbox_node` can also be implemented by calling `InlineTypeNode::make_from_oop` ?
You are correct, every time C2 see a value/primitive instance it does create an InlineTypeNode IR by loading each fields from oop using make_from_oop, thus vector inline expanders should always receive a InlineType node.

-------------
PR Review Comment: https://git.openjdk.org/valhalla/pull/833#discussion_r1160358295
More information about the valhalla-dev
mailing list