[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