< prev index next >

src/hotspot/share/opto/macro.cpp

Print this page

        

@@ -2663,11 +2663,12 @@
       default:
         assert(n->Opcode() == Op_LoopLimit ||
                n->Opcode() == Op_Opaque1   ||
                n->Opcode() == Op_Opaque2   ||
                n->Opcode() == Op_Opaque3   ||
-               n->Opcode() == Op_Opaque4, "unknown node type in macro list");
+               n->Opcode() == Op_Opaque4   ||
+               n->Opcode() == Op_Opaque5, "unknown node type in macro list");
       }
       assert(success == (C->macro_count() < old_macro_count), "elimination reduces macro count");
       progress = progress || success;
     }
   }

@@ -2731,10 +2732,15 @@
         success = true;
 #endif
       } else if (n->Opcode() == Op_Opaque4) {
         _igvn.replace_node(n, n->in(2));
         success = true;
+      } else if (n->Opcode() == Op_Opaque5) {
+        Node* res = ((Opaque5Node*)n)->adjust_strip_mined_loop(&_igvn);
+        guarantee(res != NULL, "strip mined adjustment failed");
+        _igvn.replace_node(n, res);
+        success = true;
       }
       assert(success == (C->macro_count() < old_macro_count), "elimination reduces macro count");
       progress = progress || success;
     }
   }
< prev index next >