RFR(XS): 8215044: C2 crash in loopTransform.cpp with assert(cl->trip_count() > 0) failed: peeling a fully unrolled loop

Vladimir Kozlov vladimir.kozlov at oracle.com
Tue Dec 18 16:50:25 UTC 2018


BTW why we don't execute do_maximally_unroll() if trip count is known?

Thanks,
Vladimir

On 12/18/18 8:48 AM, Vladimir Kozlov wrote:
> Good.
> 
> Thanks,
> Vladimir
> 
> On 12/17/18 1:39 AM, Roland Westrelin wrote:
>>
>> http://cr.openjdk.java.net/~roland/8215044/webrev.00/
>>
>> The trip count of the inner loop is first computed to be 4. The
>> pre/main/post loops are then created and the main loop trip count is
>> adjusted to be 3. The inner loop is unrolled once, trip count is set to
>> 1 (3/2). Then peeling is attempted twice, the second one sees a zero
>> trip count.
>>
>> The fix I propose is to not attempt peeling on a loop with an expected
>> trip count of 1.
>>
>> Roland.
>>


More information about the hotspot-compiler-dev mailing list