[jdk17] RFR: 8269580: assert(is_valid()) failed: invalid register (-1)

Dean Long dlong at openjdk.java.net
Wed Jun 30 21:50:03 UTC 2021


On Tue, 29 Jun 2021 15:34:18 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:

> - Assertion fails during emit phase of rep_stos instruction pattern on targets not supporting AVX512BW feature.
> - Pattern is selected under following predication logic.
>  predicate(!((ClearArrayNode*)n)->is_large() &&
>               (UseAVX <= 2 || !VM_Version::supports_avx512vlbw()));
> - Encoding block of this pattern passes a  knoreg opmask register having a default encoding of -1,  this later causes an assertion failure while assembling instruction operating over this register. 
> - Existing pattern rep_stos_evex should be able to handle case for AVX512 targets as instructions operating of opmask registers are anyways guarded by target feature checks.

I can't convince myself that this fix is correct.  The logic that controls when the mask register is used seems much more complicated that the predicate that guards it.

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

PR: https://git.openjdk.java.net/jdk17/pull/172


More information about the hotspot-compiler-dev mailing list