--- old/src/hotspot/share/opto/macro.cpp 2017-10-03 11:50:08.738508139 +0200 +++ new/src/hotspot/share/opto/macro.cpp 2017-10-03 11:50:07.674508985 +0200 @@ -2665,7 +2665,8 @@ 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; @@ -2733,6 +2734,11 @@ } 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;