RFR: 8252848: Optimize small primitive arrayCopy operations through partial inlining using AVX-512 masked instructions [v9]
Jatin Bhateja
jbhateja at openjdk.java.net
Thu Oct 29 10:28:00 UTC 2020
On Thu, 29 Oct 2020 08:03:23 GMT, Ningsheng Jian <njian at openjdk.org> wrote:
> > As currently there is no support for mask registers in RA, for X86 long ideal type is sufficient for a mask producing node (def operand is a mask register) ; But for complete support returning Op_RegVMask as an ideal_reg() type for masked Ideal node should do the trick without creating an explicit new ideal Type for mask generating nodes. Spill sizes and number of slots may be different for X86 and ARM (SVE).
>
> So, do you have a plan to support Op_RegVMask? In SVE, we will use this kind of node for mask/predicate type.
>
Not as the part of this patch but as a separate RFE, we may benefit from decoupling b/w ideal type(bottom_type) and ideal_reg() for a given Ideal node; this should allow us to build any future extension on top of these masked generating nodes (VectorMaskGen).
> > Shallow copy during Node::clone should be sufficient here since encapsulated element type will be preserved.
>
> Checking the code in Node::clone() again, I think the object copy relies on size_of(), so you need to override that to get the correct object size for copying.
Thanks for pointing out; I missed this earlier.
-------------
PR: https://git.openjdk.java.net/jdk/pull/302
More information about the hotspot-compiler-dev
mailing list