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

Vladimir Ivanov vlivanov at openjdk.java.net
Thu Mar 18 11:34:41 UTC 2021


On Thu, 18 Mar 2021 03:35:44 GMT, Ningsheng Jian <njian at openjdk.org> wrote:

>> Jatin Bhateja has updated the pull request incrementally with one additional commit since the last revision:
>> 
>>   8262355: Review comments resolutions.
>
> src/hotspot/cpu/x86/x86_32.ad line 271:
> 
>> 269:     // curruption of value held in K1 register.
>> 270:     const_cast<RegMask*>(&_OPMASK_REG_mask)->Remove(OptoReg::as_OptoReg(k1->as_VMReg()));
>> 271:     const_cast<RegMask*>(&_OPMASK_REG_mask)->Remove(OptoReg::as_OptoReg(k1->as_VMReg()->next()));
> 
> Will changing your kReg operand by adding a new reg_class without k0/k1 or removing k0/k1 from opmask_reg (but keep in chunk2) be simpler?

I agree with @nsjian. Removing k0/k1 from `kReg` definition would be simpler and cleaner.

`reg_mask_init` handles 2 cases:
  * RegMask depends on runtime conditions (e.g., `-XX:+/-PreserveFramePointer`);
  * save on repetitive definitions and derive a reg mask from another definition (`_PTR_REG_mask`, `_LONG_NO_RAX_RDX_REG_mask`). 

`kReg` doesn't fall into any of those categories.

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

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


More information about the hotspot-compiler-dev mailing list