[14] RFR(XXS):8236364:TEMP vector registers could be incorrectly assigned upper bank xmm registers after Generic Operands (JDK-8234391)
Vladimir Kozlov
vladimir.kozlov at oracle.com
Fri Dec 20 21:42:31 UTC 2019
On 12/20/19 11:35 AM, Viswanathan, Sandhya wrote:
> Hi Vladimir,
>
> Thanks for the review. Please find the updated webrev below for JDK 14:
> JBS: https://bugs.openjdk.java.net/browse/JDK-8236364
> Webrev: http://cr.openjdk.java.net/~sviswanathan/8236364/webrev.01/
Looks good.
Thanks,
Vladimir K
>
>
> RFE filed for JDK 15:
> https://bugs.openjdk.java.net/browse/JDK-8236446
>
> Best Regards,
> Sandhya
>
>
> -----Original Message-----
> From: Vladimir Ivanov <vladimir.x.ivanov at oracle.com>
> Sent: Friday, December 20, 2019 2:20 AM
> To: Viswanathan, Sandhya <sandhya.viswanathan at intel.com>; hotspot compiler <hotspot-compiler-dev at openjdk.java.net>
> Subject: Re: [14] RFR(XXS):8236364:TEMP vector registers could be incorrectly assigned upper bank xmm registers after Generic Operands (JDK-8234391)
>
> Hi Sandhya,
>
>> Webrev: http://cr.openjdk.java.net/~sviswanathan/8236364/webrev.00/
>
> I'd prefer to see the check as a special case with a comment:
>
> MachOper* Matcher::specialize_generic_vector_operand(MachOper*
> generic_opnd, uint ideal_reg) {
> assert(Matcher::is_generic_vector(generic_opnd), "not generic");
> bool legacy = (generic_opnd->opcode() == LEGVEC);
> + if (!VM_Version::supports_avx512vlbwdq() && // KNL
> + is_temp && !legacy && (ideal_reg == Op_VecZ)) {
> + // Conservatively specialize 512bit vec TEMP operands to legVecZ
> (zmm0-15) on KNL.
> + return new legVecZOper();
> + }
> if (legacy) {
> switch (ideal_reg) {
> case Op_VecS: return new legVecSOper();
>
> Otherwise, looks good.
>
> I consider it as a stop-the-gap solution for 14. In 15 we need to get rid of it and adjust TEMP operand types in x86.ad instead. Please, file an RFE for it.
>
> Best regards,
> Vladimir Ivanov
>
>>
>> Best Regards,
>> Sandhya
>>
>>
>>
More information about the hotspot-compiler-dev
mailing list