[jdk16] RFR: 8260339: JVM crashes when executing PhaseIdealLoop::match_fill_loop

Ningsheng Jian njian at openjdk.java.net
Wed Jan 27 10:41:42 UTC 2021


On Wed, 27 Jan 2021 09:02:26 GMT, Wang Huang <whuang at openjdk.org> wrote:

>> The reason is :
>> 
>>   BasicType t = store->as_Mem()->memory_type();
>>   const char* fill_name;
>>   if (msg == NULL &&
>>       StubRoutines::select_fill_function(t, false, fill_name) == NULL) {
>>     msg = "unsupported store";
>>     msg_node = store;
>>   }
>> 
>> If the `store` is a `StoreVectorNode` ,the `BasicType` is `T_VOID`. It seems that we don't need to intrinsify a `StoreVectorNode` filling here.
>> 
>> I add a new case here to avoid mistake:
>>   case T_NARROWOOP:
>>   case T_NARROWKLASS:
>>   case T_ADDRESS:
>> +  case T_VOID:
>>     // Currently unsupported
>>     return NULL;
>
>> Hi @Wanghuang-Huawei,
>> 
>> given JDK16 is RDP2 and your patch changes the shared code, you are to integrate an automated jtreg test together with the fix. I've taken `TestLoopStoreVector.java` from 8260339 and added the minimal required jtreg test description, and double-checked that the test fails on linux-aarch64 w/o the fix and passes w/ it. you can take the jtreg-ified test from my [pull/132](https://github.com/iignatev/jdk16/tree/pull/132) branch (you will need to replace `$copyright-header` w/ the appropriate line), feel free to use it as-is or modify.
>> 
>> Thanks,
>> -- Igor
> 
> Thank you very much. I will push a new commit which contains jtreg test.

> @Wanghuang-Huawei Have you been able to reproduce this on any other platform that linux-aarch64? I'm having trouble reproducing this on x64.

I think x64 has disabled OptimizeFill by default. I can reproduce this with -XX:+OptimizeFill.

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

PR: https://git.openjdk.java.net/jdk16/pull/132


More information about the hotspot-compiler-dev mailing list