< prev index next >

src/share/vm/opto/library_call.cpp

Print this page
rev 14419 : Remove obsolete and unused reduce-storeval-barrier optimization code.

*** 2718,2727 **** --- 2718,2728 ---- default: break; } if (type == T_OBJECT) { + val = shenandoah_storeval_barrier(val); store_oop_to_unknown(control(), heap_base_oop, adr, adr_type, val, type, mo, mismatched); } else { store_to_memory(control(), adr, val, type, adr_type, mo, requires_atomic_access, unaligned, mismatched); } }
*** 3067,3100 **** // could be delayed during Parse (for example, in adjust_map_after_if()). // Execute transformation here to avoid barrier generation in such case. if (_gvn.type(newval) == TypePtr::NULL_PTR) newval = _gvn.makecon(TypePtr::NULL_PTR); // Reference stores need a store barrier. switch(kind) { case LS_get_set: { // If pre-barrier must execute before the oop store, old value will require do_load here. if (!can_move_pre_barrier()) { ! newval = pre_barrier(true /* do_load*/, control(), base, adr, alias_idx, newval, value_type->make_oopptr(), NULL /* pre_val*/, T_OBJECT); } // Else move pre_barrier to use load_store value, see below. - else { - newval = shenandoah_storeval_barrier(newval); - } break; } case LS_cmp_swap_weak: case LS_cmp_swap: case LS_cmp_exchange: { // Same as for newval above: if (_gvn.type(oldval) == TypePtr::NULL_PTR) { oldval = _gvn.makecon(TypePtr::NULL_PTR); } // The only known value which might get overwritten is oldval. ! newval = pre_barrier(false /* do_load */, control(), NULL, adr, max_juint, newval, NULL, oldval /* pre_val */, T_OBJECT); break; } --- 3068,3100 ---- // could be delayed during Parse (for example, in adjust_map_after_if()). // Execute transformation here to avoid barrier generation in such case. if (_gvn.type(newval) == TypePtr::NULL_PTR) newval = _gvn.makecon(TypePtr::NULL_PTR); + newval = shenandoah_storeval_barrier(newval); + // Reference stores need a store barrier. switch(kind) { case LS_get_set: { // If pre-barrier must execute before the oop store, old value will require do_load here. if (!can_move_pre_barrier()) { ! pre_barrier(true /* do_load*/, control(), base, adr, alias_idx, newval, value_type->make_oopptr(), NULL /* pre_val*/, T_OBJECT); } // Else move pre_barrier to use load_store value, see below. break; } case LS_cmp_swap_weak: case LS_cmp_swap: case LS_cmp_exchange: { // Same as for newval above: if (_gvn.type(oldval) == TypePtr::NULL_PTR) { oldval = _gvn.makecon(TypePtr::NULL_PTR); } // The only known value which might get overwritten is oldval. ! pre_barrier(false /* do_load */, control(), NULL, adr, max_juint, newval, NULL, oldval /* pre_val */, T_OBJECT); break; }
< prev index next >