RFR: 8262355: Support for AVX-512 opmask register allocation. [v3]
Jatin Bhateja
jbhateja at openjdk.java.net
Thu Mar 18 11:06:43 UTC 2021
On Thu, 18 Mar 2021 03:10:44 GMT, Xiaohong Gong <xgong at openjdk.org> wrote:
>> Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision:
>>
>> 8262355: Creating a new ideal type TypeVectMask for mask generating nodes.
>
> src/hotspot/share/opto/type.hpp line 1714:
>
>> 1712:
>> 1713: inline const TypeVect *Type::isa_vect() const {
>> 1714: return (_base >= VectorM && _base <= VectorZ) ? (TypeVect*)this : NULL;
>
> I'm sorry that I still cannot understand why `"TypeVectMask"` is needed to extend from `"TypeVect"`. Is there any other important reasons besides of the logic extension? I'm worried if there is any influence that these two methods treat the `VectorM` as a vector? There are too much usages of these two methods that are specific for vectors especially during register allocation. I'm wondering whether there are any other usages also need the same handles like what you have fixed line 1059 in `x86_32.ad`. Did you have checked all the usages? Thanks!
New mask type is indeed a vector of BYTE/BOOLEAN values, thus its ok if it goes though regular flows which processes vector type.
-------------
PR: https://git.openjdk.java.net/jdk/pull/2768
More information about the hotspot-compiler-dev
mailing list