[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