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

Roland Westrelin roland.westrelin at oracle.com
Mon Nov 9 11:05:45 UTC 2015


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