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

Ningsheng Jian ningsheng.jian at arm.com
Thu Jul 23 08:02:47 UTC 2020


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 core-libs-dev mailing list