RFR(L) Valhalla support for AArch64 v.05

Ioi Lam ioi.lam at oracle.com
Fri Jul 5 05:14:30 UTC 2019


So the AArch64 port fails but the x64 port passes? I just tested on x64 
and the test passed for me.

I would suggest running both ports side-by-side with gdb, and see when 
the behavior starts to diverge.

To help debugging, you can try to strip down TestFlatArrayThreshold.java 
to the minimum and also pass -XX:CompileCommand=compileonly,*::test2 
-XX:CompileCommand=print,*::test2 to the @run line.

Thanks
- Ioi

On 7/4/19 11:01 AM, Dmitry Samersoff wrote:
> Ioi,
>
> After last rebase the test TestFlatArrayThreshold start failing:
>
> java.lang.RuntimeException: NullPointerException expected
>          at TestFlatArrayThreshold.main(TestFlatArrayThreshold.java:128)
>
> i.e. when we pass null to:
>
>   public static MyValue1? test2(MyValue1?[] va, MyValue1? vt) {
>          va[0] = vt;
>          return va[1];
>      }
>
> It fails if ValueKlass::flatten_array() returns false,
> but passes if it returns true. It also passes wit -Xint
>
> Do you know where I should look for the problem? I didn't find any
> obvious platfrom-specific changes.
>
> -Dmitry
>
> On 27.06.2019 19:09, Ioi Lam wrote:
>> Hi Dmitry,
>>
>> During the port, have you found anything that should be refactored and
>> put into shared code?
>>
>> One thing that I am thinking of doing is to refactor the code in
>> macroAssembler_x86.cpp that deals with ValueTypePassFieldsAsArgs.
>> Hopefully that will make the port to other architectures easier.
>>
>> Thanks
>> - Ioi
>>
>>
>> On 6/27/19 12:43 AM, Dmitry Samersoff wrote:
>>> Hello Everybody,
>>>
>>>
>>> Please review v.05 of adding AArch64 support to lworld branch
>>>
>>> http://cr.openjdk.java.net/~dsamersoff/valhalla_lworld_aarch64/webrev.05/
>>>
>>> What was done:
>>>
>>>     Implemented Valhalla support for aarch64.
>>>
>>>     Support for ValueTypePassFieldsAsArgs and ValueTypeReturnedAsFields
>>>     is not completed and is not included into this webrev
>>>     to reduce review and rebasing efforts.
>>>
>>> Testing:
>>>
>>>      All tests in runtime/valhalla/valuetypes and in
>>> compiler/valhalla/valuetypes/ are passed
>>>
>>>      compiler/valhalla/valuetypes/TestMethodHandles.java
>>>      compiler/valhalla/valuetypes/TestBasicFunctionality.java
>>>
>>>      are passed after manually tweaking of output patterns, I have not
>>> found a way to support both x86 and aarch64, so these tests remain
>>> unchanged and run on x64 only.
>>>
>>>
>>> -Dmitry



More information about the valhalla-dev mailing list