[vector] generic operand infrastructure support.
Yang Zhang (Arm Technology China)
Yang.Zhang at arm.com
Mon Sep 2 03:45:00 UTC 2019
Hi Jatin, Sandhya
This patch is very generic. All the projects which are using vector instructions in backend can benefit from it. To reduce manual merge works in the future, proposing this patch to jdk/jdk master would be better.
I test this patch in our internal ci test framework. In x86 platform, build fails. The post-selection pass is missed. The error log is as follows:
src/hotspot/share/opto/compile.cpp:2945: undefined reference to `Matcher::do_post_selection_processing(Compile*, Node*)'
Besides that, there are also some trailing spaces and blank lines.
Regards
Yang
-----Original Message-----
From: panama-dev <panama-dev-bounces at openjdk.java.net> On Behalf Of Viswanathan, Sandhya
Sent: Saturday, August 31, 2019 6:08 AM
To: Bhateja, Jatin <jatin.bhateja at intel.com>; panama-dev at openjdk.java.net
Subject: RE: [vector] generic operand infrastructure support.
Hi Jatin,
The patch looks good to me.
Best Regards,
Sandhya
From: Bhateja, Jatin
Sent: Friday, August 30, 2019 5:07 AM
To: panama-dev at openjdk.java.net
Cc: Viswanathan, Sandhya <sandhya.viswanathan at intel.com>
Subject: [vector] generic operand infrastructure support.
Hi All,
We have been working over reducing the AD file and libjvm.so size by reducing the number of vector instruction patterns whose operands differ meagerly in vector lengths.
As of now we have several vector operand for X86 target like vecS , vecD, vecX , vecY, vecZ and their legacy variants. This patch adds an infrastructure to support generic operands[1] and a post-selection pass to remove them from machine graph so that there is minimal impact on the downstream passes.
Complete patch using generic operands which reduces the number of vector patterns from 510 to 222 is already posted over mainline https://mail.openjdk.java.net/piperail/hotspot-compiler-dev/2019-August/034822.html
Since vectorIntrinsics branch has bulk of the vector instruction patterns hence we plan to introduce the support in stages.
Following patch contains the infrastructure changes for generic operands, using it we can collapse the different vector length instructions for same operation without making any changes in the ideal graph.
CR : http://cr.openjdk.java.net/~jbhateja/vectorIntrinsics/GEN_OPERS/webrev.00/
Common JBS for jdk/mainline and panama/vectorIntrinsics : https://bugs.openjdk.java.net/browse/JDK-8230015
Kindly review it provide your feedback.
Best Regards,
Jatin Bhateja
PS : All the changes are currently enabled only for X86 target.
[1] http://cr.openjdk.java.net/~jbhateja/genericVectorOperands/generic_operands_support_v1.0.pdf
More information about the panama-dev
mailing list