[lworld+vector] RFR: Merge lworld [v2]
Xiaohong Gong
xgong at openjdk.org
Tue Sep 26 03:40:42 UTC 2023
On Tue, 26 Sep 2023 02:24:25 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:
>> Merge latest lworld changes into lworld+vector branch.
>>
>> Validation Status with this patch:-
>>
>> - All the tests under test/hotspot/jtreg/compiler/valhalla/inlinetypes are now passing at various AVX levels.
>> - No new Vector API jtreg test failure seen.
>>
>> Best Regards,
>> Jatin
>
> Jatin Bhateja has updated the pull request with a new target base due to a merge or a rebase. The pull request now contains 14 commits:
>
> - jcheck failure resolution, whitespace removal
> - Remove multifield related special handling from C1
> - Merge branch 'lworld' of http://github.com/openjdk/valhalla into merge_lworld
> - 8314980: [lworld+vector] consider scalarization conditions during ciMultiField creation.
>
> Reviewed-by: xgong
> - Merge lworld
>
> Reviewed-by: jbhateja
> - 8314628: [lworld+vector] validation regression fixes and cleanups.
>
> Reviewed-by: xgong
> - 8311610: [lworld+vector] Clean-up of vector allocation in class VectorSupport
>
> Reviewed-by: jbhateja
> - 8311080: [lworld+vector] Fix jdk build failures with different options
>
> Reviewed-by: jbhateja
> - Merge lworld
>
> Co-authored-by: Xiaohong Gong <xgong at openjdk.org>
> Reviewed-by: xgong
> - 8307715: Integrate VectorMask/Shuffle with value/primitive classes
>
> Reviewed-by: jbhateja
> - ... and 4 more: https://git.openjdk.org/valhalla/compare/0263bd93...fa27d069
Hi @jatin-bhateja ,
Sorry for my late reply to this PR (just noticed it today)!
Regarding to the removing of special handling for multifields in C1, it may cause a regression in test `jdk/incubator/vector/VectorRuns.java` and `jdk/incubator/vector/VectorHash.java`.
Here is the main log:
WARNING: Using incubator modules: jdk.incubator.vector
java.lang.AssertionError: 1024 72
at VectorRuns.assertEquals(VectorRuns.java:51)
at VectorRuns.main(VectorRuns.java:46)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:582)
at com.sun.javatest.regtest.agent.MainWrapper$MainTask.run(MainWrapper.java:138)
at java.base/java.lang.Thread.run(Thread.java:1570)
JavaTest Message: Test threw exception: java.lang.AssertionError: 1024 72
JavaTest Message: shutting down test
STATUS:Failed.`main' threw exception: java.lang.AssertionError: 1024 72
I guess the `nof_nonstatic_fields` in the `ciInstanceKlass.cpp` does not contain all the multifields, although https://github.com/openjdk/valhalla/blob/lworld%2Bvector/src/hotspot/share/ci/ciEnv.cpp#L1774 returns `false ` for c1. Because the ci instance is singleton and shared between c1 and c2. So if the instance klass is created and the fields are initialized in c2 compiler thread, its nonstatic fields are just like c2 in c1 which is expected to be vectorized.
Could you please look at this issue? Running with `"-XX:TieredStopAtLevel=3"` or adding back the original handling in c1 can make these two tests pass. Thanks!
Best Regards,
Xiaohong
-------------
PR Comment: https://git.openjdk.org/valhalla/pull/929#issuecomment-1734775040
More information about the valhalla-dev
mailing list