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

Tobias Hartmann tobias.hartmann at oracle.com
Mon Nov 9 11:53:30 UTC 2015


Hi Roland,

still looks good to me.

Best,
Tobias

On 09.11.2015 12:05, 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