--- old/src/share/vm/opto/lcm.cpp 2015-10-14 13:54:19.284766970 +0200 +++ new/src/share/vm/opto/lcm.cpp 2015-10-14 13:54:19.194769146 +0200 @@ -174,6 +174,8 @@ case Op_LoadRange: case Op_LoadD_unaligned: case Op_LoadL_unaligned: + case Op_ShenandoahReadBarrier: + case Op_ShenandoahWriteBarrier: assert(mach->in(2) == val, "should be address"); break; case Op_StoreB: @@ -380,7 +382,7 @@ // Should be DU safe because no edge updates. for (DUIterator_Fast jmax, j = best->fast_outs(jmax); j < jmax; j++) { Node* n = best->fast_out(j); - if( n->is_MachProj() ) { + if( n->is_MachProj() || n->Opcode() == Op_ShenandoahWBMemProj) { get_block_for_node(n)->find_remove(n); block->add_inst(n); map_node_to_block(n, block);