[14] RFR(XXS):8236364:TEMP vector registers could be incorrectly assigned upper bank xmm registers after Generic Operands (JDK-8234391)
Vladimir Ivanov
vladimir.x.ivanov at oracle.com
Fri Dec 20 10:19:41 UTC 2019
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