[jdk17] RFR: 8269775: compiler/codegen/ClearArrayTest.java failed with "assert(false) failed: bad AD file"

Sandhya Viswanathan sviswanathan at openjdk.java.net
Fri Jul 2 01:55:00 UTC 2021


On Fri, 2 Jul 2021 01:14:55 GMT, Vladimir Kozlov <kvn at openjdk.org> wrote:

>> The following test failed in JDK17 
>> compiler/codegen/ClearArrayTest.java
>> with assert(false) failed: bad AD file
>> 
>> The problem is that no match is found for platforms not supporting avx512vlbw for constant input.
>> 
>> Per analysis from Dean Long and Vladimir Kozlov:
>> This is due to rep_stos rules for small clear array which use !n->in(2)->bottom_type()->is_long()->is_con(). 
>> This prevents the rule from matching with a constant --> register conversion. 
>> Removing !is_con() from rep_stos for small clear array fixes the issue.
>> We also add appropriate "ins_cost" to all ClearArray rules, so that in the case of multiple matches, we break the tie based on ins_cost.
>> 
>> Best Regards,
>> Sandhya
>
> I verified that with this fix `rep_stos_im()` or `rep_stos_evex()` will be used depending on avx512vlbw support.
> Good!

@vnkozlov I have implemented all your review comments. Please take a look.

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

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


More information about the hotspot-compiler-dev mailing list