--- old/src/hotspot/share/opto/valuetypenode.cpp 2019-05-08 13:39:01.835863677 +0200 +++ new/src/hotspot/share/opto/valuetypenode.cpp 2019-05-08 13:39:01.687864696 +0200 @@ -359,7 +359,7 @@ } } -ValueTypeBaseNode* ValueTypeBaseNode::allocate(GraphKit* kit, bool deoptimize_on_exception) { +ValueTypeBaseNode* ValueTypeBaseNode::allocate(GraphKit* kit, bool deoptimize_on_exception, bool safe_for_replace) { // Check if value type is already allocated Node* null_ctl = kit->top(); Node* not_null_oop = kit->null_check_oop(get_oop(), &null_ctl); @@ -405,7 +405,9 @@ ValueTypeBaseNode* vt = clone()->as_ValueTypeBase(); vt->set_oop(res_oop); vt = kit->gvn().transform(vt)->as_ValueTypeBase(); - kit->replace_in_map(this, vt); + if (safe_for_replace) { + kit->replace_in_map(this, vt); + } return vt; }