[14] RFR (L): 8235405: C2: Merge AD instructions for different vector operations

Vladimir Ivanov vladimir.x.ivanov at oracle.com
Thu Dec 5 12:01:21 UTC 2019


http://cr.openjdk.java.net/~vlivanov/jbhateja/8235405/webrev.00/all
https://bugs.openjdk.java.net/browse/JDK-8235405

Reduce the number of AD instructions needed to implement vector 
operations by merging existing ones. The patch covers the following 
operations:
   - LoadVector
   - StoreVector
   - RoundDoubleModeV
   - AndV
   - OrV
   - XorV
   - MulAddVS2VI
   - PopCountVI

Indiviual patches:
 
http://cr.openjdk.java.net/~vlivanov/jbhateja/8235405/webrev.00/individual

As Jatin described, merging is applied only to AD instructions of 
similar shape. There are some more opportunities for reduction/merging 
left, but they are deliberately left out for future work.

The patch is derived from the inintial version of generic vector support 
[1]. Generic vector support was reviewed earlier and the other parts of 
refactorings in x86.ad  will be posted for review separately (7 more 
patches pending).

Testing: tier1-4, test run on different CPU flavors (KNL, SKL, etc)

Contributed-by: Jatin Bhateja <jatin.bhateja at intel.com>
Reviewed-by: vlivanov, sviswanathan, ?

Best regards,
Vladimir Ivanov

[1] 
https://mail.openjdk.java.net/pipermail/hotspot-compiler-dev/2019-August/034822.html


More information about the hotspot-compiler-dev mailing list