--- old/src/share/vm/opto/ifg.cpp 2015-10-08 22:15:50.170244239 +0200 +++ new/src/share/vm/opto/ifg.cpp 2015-10-08 22:15:50.123245362 +0200 @@ -535,7 +535,7 @@ // The method add_input_to_liveout() keeps such nodes alive (put them on liveout list) // when it sees SCMemProj node in a block. Unfortunately SCMemProj node could be placed // in block in such order that KILL MachProj nodes are processed first. - if (def->has_out_with(Op_SCMemProj)) { + if (def->has_out_with(Op_SCMemProj) || def->has_out_with(Op_ShenandoahWBMemProj)) { return false; } } @@ -683,7 +683,7 @@ JVMState* jvms = n->jvms(); uint debug_start = jvms ? jvms->debug_start() : 999999; - for (uint k = ((n->Opcode() == Op_SCMemProj) ? 0:1); k < n->req(); k++) { + for (uint k = ((n->Opcode() == Op_SCMemProj || n->Opcode() == Op_ShenandoahWBMemProj) ? 0:1); k < n->req(); k++) { Node* def = n->in(k); uint lid = _lrg_map.live_range_id(def); if (!lid) {