RFR(S): 8235762: JVM crash in SWPointer during C2 compilation

Christian Hagedorn christian.hagedorn at oracle.com
Wed Dec 18 14:44:15 UTC 2019


Hi Felix

>    Yes, orig_msize is 0 for the test case in my webrev.
>    For the else case, I find it hard to manually create a test case for it.
>    Another choice is asserting that this else case never happens.  I am not going that way as I haven't got a strong reason for that.

Ok, maybe we could really just assert and bailout if the else case 
happens if you cannot find a test case which covers it? Might be best if 
someone else can comment on that, too, what to do in this case.

Best regards,
Christian

>> Thanks for explaining. Following your analysis with the provided test case,
>> orig_msize is 0 in the end. Can you also provide a test case or show an example
>> which covers the else case in this test:
>>
>>    717             if (orig_msize == 0) {
>>    718               best_align_to_mem_ref =
>> memops.at(max_idx)->as_Mem();
>>    719             } else {
>>    720               for (uint i = 0; i < orig_msize; i++) {
>>    721                 memops.remove(0);
>>    722               }
>>    723               best_align_to_mem_ref = find_align_to_ref(memops,
>> max_idx);
>>    724               assert(best_align_to_mem_ref == NULL, "sanity");
>>    725               best_align_to_mem_ref =
>> memops.at(max_idx)->as_Mem();
>>    726             }


More information about the hotspot-compiler-dev mailing list