[lworld+vector] RFR: 8304310: Initial compilers and runtime handling for multifield backed vectors. [v5]
Jatin Bhateja
jbhateja at openjdk.org
Tue Apr 11 00:42:01 UTC 2023
On Mon, 10 Apr 2023 08:05:43 GMT, Xiaohong Gong <xgong at openjdk.org> wrote:
>> Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision:
>>
>> Cleanup vector box expansion handling to leverage existing InlineTypeNode storage and flow merging routines.
>
> src/hotspot/share/opto/vector.cpp line 318:
>
>> 316: if (vec_box->outcnt() > 0) {
>> 317: Node* vbox_alloc = vec_box->get_oop();
>> 318: assert(vbox_alloc->is_Proj() && vbox_alloc->in(0)->isa_VectorBoxAllocate(), "");
>
> Before we have the `PhiNode` as the oop and vect inputs, which are from the transformations like `merge_through_phi`, but now the oop is only the VBA?
I wanted to get away with VectorBoxAllocateNode (a macro node) in a subsequent patch, I kept it currently because it being a SafePoint node carries JVMState for re-initialization of GraphKit during expansion, this helps in accessing control and memory edges needed during new_instance creation for vector_boxes.
Otherwise, InlineTypeNode handle control flow merges inherently.
https://github.com/openjdk/valhalla/blob/lworld%2Bvector/src/hotspot/share/opto/inlinetypenode.hpp#L91
What do you think ?
-------------
PR Review Comment: https://git.openjdk.org/valhalla/pull/833#discussion_r1162192666
More information about the valhalla-dev
mailing list