RFR(M): 8137168: Replace IfNode with a new RangeCheckNode for range checks

Roland Westrelin roland.westrelin at oracle.com
Tue Nov 10 11:22:19 UTC 2015


Thanks Vladimir & Tobias for the re-review.

Roland.

> On Nov 9, 2015, at 6:49 PM, Vladimir Kozlov <vladimir.kozlov at oracle.com> wrote:
> 
> Looks good.
> 
> Thanks,
> Vladimir
> 
> On 11/9/15 3:05 AM, Roland Westrelin wrote:
>> I noticed the following change:
>> 
>> --- a/src/share/vm/opto/loopTransform.cpp
>> +++ b/src/share/vm/opto/loopTransform.cpp
>> @@ -2036,8 +2036,8 @@
>>    // loop-invariant.
>>    for( uint i = 0; i < loop->_body.size(); i++ ) {
>>      Node *iff = loop->_body[i];
>> -    if( iff->Opcode() == Op_If ) { // Test?
>> -
>> +    if (iff->Opcode() == Op_If ||
>> +        iff->Opcode() == Op_RangeCheck) { // Test?
>>        // Test is an IfNode, has 2 projections.  If BOTH are in the loop
>>        // we need loop unswitching instead of iteration splitting.
>>        Node *exit = loop->is_loop_exit(iff);
>> 
>> was missing from the webrev so I intend to push it with the rest of the change. Full webrev:
>> 
>> http://cr.openjdk.java.net/~roland/8137168/webrev.01/
>> 
>> Roland.
>> 



More information about the hotspot-compiler-dev mailing list