[lworld+vector] RFR: 8307715: Integrate VectorMask with value/primitive classes [v2]

Jatin Bhateja jbhateja at openjdk.org
Thu May 18 10:23:09 UTC 2023


On Wed, 17 May 2023 09:07:18 GMT, Xiaohong Gong <xgong at openjdk.org> wrote:

>> This patch changes the Vector API java side and hotspot
>> compiler code to make the `VectorMask` operations work well
>> after integrating with valhalla value/primitive classes.
>> 
>> Java side changes include:
>>  - Define the concrete VectorMask classes as value class.
>>  - Define the payload field type as primitive classes, which
>>    defines `MultiField` annotated field to save the element
>>    values.
>>  - Change all the relative API implementations, which use
>>    Unsafe APIs to access the new payload.
>>  - Move several VectorMask default operations to the abstract
>>    super class.
>> 
>> Compiler changes include:
>>  - Enable intrinsification for VectorMask related operations.
>>    Mask input/output of `VectorBox/VectorUnbox` is changed to
>>    the boolean vector format, to adapt C2's `InlineTypeNode`
>>    and new `VectorBox` features. Note that the mask input/output
>>    is a normal vector or predicate before.
>>  - Refine `VectorBox` expanding logic to make it right when the
>>    primitive payload instance is not flattened.
>>  - Minor code cleanup.
>> 
>> Basic VectorMask jtreg tests pass with
>> "`-XX:+UnlockExperimentalVMOptions -XX:-EnableVectorSupport`",
>> and the basic unit tests work well after enabling vector support.
>
> Xiaohong Gong has updated the pull request incrementally with one additional commit since the last revision:
> 
>   Fix issue when the boxed type is not equal to the intrinsic return type

> > > I am seeing some new regression failures with -XX:TieredStopAtLevel=3 and -XX:-TieredCompilation. Can you kindly check. Relevant test : Float256VectorTest.java.
> > 
> > 
> > Sure, I will run this test. Thanks!
> 
> There are some failures that are related to the `larval` state check, and deoptimization issue for a multifield, which I think is not related this patch. And I have created a local fix to the multifield deoptimization issue and will push it in future. Besides, did you see any other known failures before? Thanks!



> > > I am seeing some new regression failures with -XX:TieredStopAtLevel=3 and -XX:-TieredCompilation. Can you kindly check. Relevant test : Float256VectorTest.java.
> > 
> > 
> > Sure, I will run this test. Thanks!
> 
> There are some failures that are related to the `larval` state check, and deoptimization issue for a multifield, which I think is not related this patch. And I have created a local fix to the multifield deoptimization issue and will push it in future. Besides, did you see any other known failures before? Thanks!

I saw some failures with -XX:TieredStopAtLevel=3 which is C1 compilation, I am not sure if they are related to de-optimization. 
Attaching relevant hs_err log.
[hs_err_pid717512.log](https://github.com/openjdk/valhalla/files/11506800/hs_err_pid717512.log)

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

PR Comment: https://git.openjdk.org/valhalla/pull/845#issuecomment-1552842919



More information about the valhalla-dev mailing list