[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