[aarch64-port-dev ] RFR (XXL): 8223347: Integration of Vector API (Incubator): AArch64 backend changes

Ningsheng Jian ningsheng.jian at arm.com
Mon Jul 27 01:58:38 UTC 2020


Thank you Erik!

Regards,
Ningsheng

On 7/23/20 9:06 PM, Erik Joelsson wrote:
> Hello Ningsheng,
> 
> Build change looks good.
> 
> /Erik
> 
> On 2020-07-23 01:02, Ningsheng Jian wrote:
>> Hi Vladimir,
>>
>> Thanks for pointing out this. Yes, I missed that change in shared 
>> code. I've regenerated the webrev, with GensrcAdlc.gmk file change 
>> included:
>>
>> http://cr.openjdk.java.net/~njian/vectorapi/8223347-integration/aarch64-webrev.01/ 
>>
>>
>> Also add build-dev.
>>
>> Thanks,
>> Ningsheng
>>
>> On 7/23/20 5:36 AM, Vladimir Ivanov wrote:
>>>> http://cr.openjdk.java.net/~njian/vectorapi/8223347-integration/aarch64-webrev.01/ 
>>>
>>>
>>>
>>>
>>> FTR there's one more aarch64-specific change in shared code to enable 
>>> aarch64_neon.ad processing:
>>>
>>> diff --git a/make/hotspot/gensrc/GensrcAdlc.gmk 
>>> b/make/hotspot/gensrc/GensrcAdlc.gmk
>>> --- a/make/hotspot/gensrc/GensrcAdlc.gmk
>>> +++ b/make/hotspot/gensrc/GensrcAdlc.gmk
>>> @@ -129,6 +129,12 @@
>>>
>>> $d/os_cpu/$(HOTSPOT_TARGET_OS)_$(HOTSPOT_TARGET_CPU_ARCH)/$(HOTSPOT_TARGET_OS)_$(HOTSPOT_TARGET_CPU_ARCH).ad 
>>> \
>>>       )))
>>>
>>> +  ifeq ($(HOTSPOT_TARGET_CPU_ARCH), aarch64)
>>> +    AD_SRC_FILES += $(call uniq, $(wildcard $(foreach d, 
>>> $(AD_SRC_ROOTS), \
>>> + $d/cpu/$(HOTSPOT_TARGET_CPU_ARCH)/$(HOTSPOT_TARGET_CPU_ARCH)_neon.ad \
>>> +    )))
>>> +  endif
>>> +
>>>     ifeq ($(call check-jvm-feature, shenandoahgc), true)
>>>       AD_SRC_FILES += $(call uniq, $(wildcard $(foreach d, 
>>> $(AD_SRC_ROOTS), \
>>>
>>> $d/cpu/$(HOTSPOT_TARGET_CPU_ARCH)/gc/shenandoah/shenandoah_$(HOTSPOT_TARGET_CPU).ad 
>>> \
>>>
>>> Best regards,
>>> Vladimir Ivanov
>>>
>>>> On 7/8/20 3:05 PM, Yang Zhang wrote:
>>>>> Hi Andrew
>>>>>
>>>>> I have updated this patch. Could you please help to review it again?
>>>>> In this patch, the following changes are made:
>>>>> 1. Separate newly added NEON instructions to a new ad file
>>>>>     aarch64_neon.ad
>>>>> 2. Add assembler tests for NEON instructions. Trailing spaces
>>>>>     in the python script are also removed.
>>>>>
>>>>> http://cr.openjdk.java.net/~yzhang/vectorapi/vectorapi.rfr/aarch64_webrev/webrev.02/ 
>>>>>
>>>>>
>>>>> Thanks,
>>>>> Yang
>>>>>
>>>>>
>>>>> -----Original Message-----
>>>>> From: Andrew Haley <aph at redhat.com>
>>>>> Sent: Tuesday, June 30, 2020 12:10 AM
>>>>> To: Yang Zhang <Yang.Zhang at arm.com>; Viswanathan, Sandhya 
>>>>> <sandhya.viswanathan at intel.com>; Paul Sandoz <paul.sandoz at oracle.com>
>>>>> Cc: nd <nd at arm.com>; hotspot-compiler-dev at openjdk.java.net; 
>>>>> hotspot-dev at openjdk.java.net; core-libs-dev at openjdk.java.net; 
>>>>> aarch64-port-dev at openjdk.java.net
>>>>> Subject: Re: [aarch64-port-dev ] RFR (XXL): 8223347: Integration of 
>>>>> Vector API (Incubator): AArch64 backend changes
>>>>>
>>>>> On 29/06/2020 08:48, Yang Zhang wrote:
>>>>>> 1. Instructions that can be matched with NEON instructions directly.
>>>>>> MulVB, SqrtVF and AbsV have been merged into jdk master already.
>>>>>>
>>>>>> 2. Instructions that jdk master has middle end support for, but 
>>>>>> they cannot be matched with NEON instructions directly.
>>>>>> Such as AddReductionVL, MulReductionVL, And/Or/XorReductionV These 
>>>>>> new instructions can be moved into jdk master first, but for 
>>>>>> auto-vectorization, the performance might not get improved.
>>>>>>
>>>>>> 3. Panama/Vector API specific  instructions such as 
>>>>>> Load/StoreVector ( 16 bits), VectorReinterpret, VectorMaskCmp, 
>>>>>> MaxV/MinV, VectorBlend etc.
>>>>>> These instructions cannot be moved into jdk master first because 
>>>>>> there isn't middle-end support.
>>>>>>
>>>>>> I will put 2 and 3 in a new ad file aarch64_neon.ad. I will also 
>>>>>> update aarch64_asmtest.py and macroassemler.cpp. When the patch is 
>>>>>> ready, I will send it again.
>>>>>
>>>>> Thank you *very* much for your hard work. Appreciated!
>>>>>
>>>>> -- 
>>>>> Andrew Haley  (he/him)
>>>>> Java Platform Lead Engineer
>>>>> Red Hat UK Ltd. <https://www.redhat.com> 
>>>>> https://keybase.io/andrewhaley
>>>>> EAC8 43EB D3EF DB98 CC77 2FAD A5CD 6035 332F A671
>>>>>
>>>>
>>




More information about the build-dev mailing list