RFR: 8262355: Support for AVX-512 opmask register allocation. [v17]

Xiaohong Gong xgong at openjdk.java.net
Fri Apr 2 03:47:21 UTC 2021


On Fri, 2 Apr 2021 03:25:55 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:

>> Hi @vnkozlov , @iwanowww , your comments have been resolved, kindly share the results of tier4/tier5 testing.
>
>> Few notes.
>> 
>> 1. In `sharedRuntime_*.cpp` you have name `opmask_state_*` and `.ad` files also `opmask` and  `opmask_reg_k*'. But in C2 code you call them `vectmask`which is confusing. I prefer to use the same name everywhere -`vectmask`:
>> 
>> ```
>> const RegMask* Matcher::predicate_reg_mask(void) {
>>    return &_OPMASK_REG_mask;
>>  }
>> 
>>  const TypeVect* Matcher::predicate_reg_type(const Type* elemTy, int length) {
>>    return new TypeVectMask(TypeInt::BOOL, length);
>>  }
>> ```
>> 
>> 1. I assume that they are used only for vectors in compiled code and in other cases the don't need to be saved/restored at safepoints.
> There are mask manipulation APIs exposed by jdk.incubator.vector.VectorMask class. This base patch is using new mask operands (used to propagate mask values thorough opmask register) for VectorMaskGen node used during small copy partial in-lining  optimization.
> 
>> 2. In C2 shared code names are mess too: `VectorM, VMASK, RegVMask, TypeVectMask, VectorMaskCmp`.  I suggest to use `VectorMask, VECTMASK, RegVectMask`.

Hi @jatin-bhateja , could you please also rename the `RegVMask` to `RegVectMask` in `src/hotspot/cpu/aarch64/aarch64.ad` ? This could make the following issue when building jdk image on aarch64:
Ideal node missing: RegVMask
assert fails /home/xiagon01/code/jdk/src/hotspot/share/adlc/archDesc.cpp 484: Failed lookup of ideal node

Thanks,
Xiaohong Gong

-------------

PR: https://git.openjdk.java.net/jdk/pull/2768


More information about the hotspot-compiler-dev mailing list