RFR(S): 8215410: Regression test for JDK-8214994
tobias.hartmann at oracle.com
Mon Dec 17 06:58:16 UTC 2018
On 14.12.18 19:24, Vladimir Kozlov wrote:
> Looks good.
> On 12/14/18 9:22 AM, Tobias Hartmann wrote:
>> please review the following change that adds a regression test for 8214994 :
>> The inner loop of test1 is found to be a counted loop and a loop limit check is added by updating
>> the Opaque1 input of the predicate template:
>> where the inner Phi represents the value of 'limit'. This Opaque1 node is then pushed upwards to
>> before the predicates of the outer loop and ends up right after the second 'if (b)'. The code that
>> does this was introduced by 8205515  in JDK 11 b21 (which was a fix on top of 8203197):
>> Then the split-if optimization kicks in and splits the first predicate of the outer loop (which is
>> an "obj != NULL" check) through the 'if (b)' region. We fail because the region contains an
>> unexpected Opaque1 node.
>> After a long discussion with Roland, I came to the conclusion that this bug was fixed by accident
>> with JDK-8211451  in JDK 12 b21. With the fix, loop limit checks no longer update the input of
>> the Opaque1 node but insert a new predicate. I've therefore closed  as duplicate of  which
>> should also be backported to JDK 11 and would like to integrate the regression test with this patch.
>>  https://bugs.openjdk.java.net/browse/JDK-8214994
>>  https://bugs.openjdk.java.net/browse/JDK-8205515
>>  https://bugs.openjdk.java.net/browse/JDK-8211451
More information about the hotspot-compiler-dev