RFR(S): 8196296: Lucene test crashes C2 compilation
Tobias Hartmann
tobias.hartmann at oracle.com
Fri Jan 26 23:53:15 UTC 2018
Hi Roland,
Looks good to me too. I'll run testing and sponsor as soon as our systems are back up from maintenance.
Thanks,
Tobias
On 26.01.2018 14:49, Vladimir Kozlov wrote:
> Good.
>
> Thanks,
> Vladimir
>
> On 1/26/18 2:21 PM, Roland Westrelin wrote:
>>
>> http://cr.openjdk.java.net/~roland/8196296/webrev.00/
>>
>> C2 attempts to merge 2 back to back ifs with the same condition:
>>
>> if (condition) {
>>
>> } else {
>>
>> }
>>
>> if (condition) {
>>
>> but the second if is a counted loop end test. This causes the counted
>> loop to not keep a canonical shape. With debug builds, loop strip mining
>> verification code then causes the test to crash. With product builds,
>> the logic that finalizes the outer strip mined loop bails out but leaves
>> the outer loop. The test of the outer loop is turned into an If with a
>> constant input that's not optimized out. In the reported failure,
>> Matcher code then breaks because the If has a non Cmp input. I fixed
>> the logic in OuterStripMinedLoopNode::adjust_strip_mined_loop() so that
>> when it bails out, it causes the outer loop to go away and prevent 2
>> back to back ifs to merge if the second one is a counted loop end.
>>
>> Roland.
>>
More information about the hotspot-compiler-dev
mailing list