[aarch64-port-dev ] RFR (XXL): 8223347: Integration of Vector API (Incubator): AArch64 backend changes
Erik Joelsson
erik.joelsson at oracle.com
Thu Jul 23 13:06:22 UTC 2020
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 hotspot-compiler-dev
mailing list