[lworld+vector] RFR: 8314980: [lworld+vector] consider scalarization conditions during ciMultiField creation. [v3]

Xiaohong Gong xgong at openjdk.org
Wed Aug 30 01:55:35 UTC 2023


On Wed, 30 Aug 2023 01:48:56 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:

>> src/hotspot/share/ci/ciField.cpp line 94:
>> 
>>> 92:   _is_multifield = false;
>>> 93:   _is_multifield_base = false;
>>> 94:   _is_transiant_multifield_base = false;
>> 
>> Why do we still need `_is_multifield_base` in `ciField` ?
>
> That is one which is being used by compilers. The transient one is there for ciInstanceKlass::populate_synthetic_multifields. Both c1 and C2 use ciBytecodeStream::get_field API which creates a ciField from field reference in constant pool. It does not take into account annotations over the field and hence populate synthetic fields operates over originally created field to create a fully populated ciMultifiled. I wanted to avoid adding a transient flag originally.

Yes, I'm wondering whether we can use one like before, by just setting `_is_multifield_base = true` only when the multifields are vectorized.

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

PR Review Comment: https://git.openjdk.org/valhalla/pull/918#discussion_r1309524729



More information about the valhalla-dev mailing list