[lworld+vector] RFR: 8304310: Initial compilers and runtime handling for multifield backed vectors. [v7]

Jatin Bhateja jbhateja at openjdk.org
Tue May 2 05:17:42 UTC 2023


On Sun, 23 Apr 2023 08:19:30 GMT, Xiaohong Gong <xgong at openjdk.org> wrote:

>> Jatin Bhateja has refreshed the contents of this pull request, and previous commits have been removed. The incremental views will show differences compared to the previous content of the PR. The pull request contains three new commits since the last revision:
>> 
>>  - Extend box forwarding transformation across Phi nodes.
>>  - Code refactoring around vector boxing/unboxing.
>>  - Review comments resolutions.
>
> src/hotspot/share/opto/vectornode.hpp line 1695:
> 
>> 1693:     Node* payload_value = InlineTypeNode::make_uninitialized(gvn, payload, true);
>> 1694:     payload_value->as_InlineType()->set_field_value(0, val);
>> 1695:     payload_value = gvn.transform(payload_value);
> 
> Can we move  this to `expand_vbox_node` pass? We can keep the simple two inputs `Box` and `Value` for VectorBox like before. This can simply the change in `merge_through_phi`. 
> 
> Besides, `payload_oop` is not used, so can it be removed?

Current structure exactly comply with Java class definition, Box classes encapsulate primitive class fields. Existing valhalla routines for buffering and IR creation e.g. _make_from_oop_ etc are all recursive in nature and create an InlineTypeNode for every primitive class object field.

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

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



More information about the valhalla-dev mailing list