[lworld+vector] RFR: 8314980: [lworld+vector] consider scalarization conditions during ciMultiField creation. [v2]
Xiaohong Gong
xgong at openjdk.org
Mon Aug 28 02:07:29 UTC 2023
On Fri, 25 Aug 2023 05:10:04 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:
>> Patch adds a new API _ciEnv::is_multifield_scalarized_, to scalarize multifield (ciField[s]) in case target vector cannot accommodate multifield bundle size, else it creates a hierarchical structure ciMultiField and expose entire multifield bundle as one field to C2 compiler.
>>
>> This cleans up special handling done in C2 compiler, ci field query APIs and object reconstruction handling at SafePoint.
>>
>> Please review and share your feedback.
>>
>> Best Regards,
>> Jatin
>
> Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision:
>
> Remove unused function declaration.
src/hotspot/share/ci/ciEnv.cpp line 1782:
> 1780: return InlineTypeNode::is_multifield_scalarized(bt, vec_length);
> 1781: #else
> 1782: return false;
1. I think it's better to implement `is_multifield_scalarized()` here, and reference it in C2 compiler. It's opposite here.
2. By default, it should return `true` instead of `false` if `COMPILER2` is not supported.
src/hotspot/share/ci/ciInstanceKlass.cpp line 590:
> 588: for (JavaFieldStream fs(k); !fs.done(); fs.next()) {
> 589: if (fs.access_flags().is_static()) continue;
> 590: if (fs.is_multifield() && sec_fields_count) {
Change to: `(fs.is_mutlfield() && sec_fields_count != 0)` ?
-------------
PR Review Comment: https://git.openjdk.org/valhalla/pull/918#discussion_r1306824150
PR Review Comment: https://git.openjdk.org/valhalla/pull/918#discussion_r1306828199
More information about the valhalla-dev
mailing list