Mercurial > hg > truffle
diff src/share/vm/opto/parse3.cpp @ 14726:92aa6797d639
Backed out merge changeset: b51e29501f30
Backed out merge revision to its first parent (8f483e200405)
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Mon, 24 Mar 2014 21:30:43 +0100 |
parents | 3edd4a71588b |
children |
line wrap: on
line diff
--- a/src/share/vm/opto/parse3.cpp Fri Mar 21 16:36:59 2014 -0700 +++ b/src/share/vm/opto/parse3.cpp Mon Mar 24 21:30:43 2014 +0100 @@ -233,8 +233,7 @@ // Build the load. // MemNode::MemOrd mo = is_vol ? MemNode::acquire : MemNode::unordered; - bool needs_atomic_access = is_vol || AlwaysAtomicAccesses; - Node* ld = make_load(NULL, adr, type, bt, adr_type, mo, needs_atomic_access); + Node* ld = make_load(NULL, adr, type, bt, adr_type, mo, is_vol); // Adjust Java stack if (type2size[bt] == 1) @@ -315,8 +314,7 @@ } store = store_oop_to_object(control(), obj, adr, adr_type, val, field_type, bt, mo); } else { - bool needs_atomic_access = is_vol || AlwaysAtomicAccesses; - store = store_to_memory(control(), adr, val, bt, adr_type, mo, needs_atomic_access); + store = store_to_memory(control(), adr, val, bt, adr_type, mo, is_vol); } // If reference is volatile, prevent following volatiles ops from @@ -334,23 +332,13 @@ } } - if (is_field) { - set_wrote_fields(true); - } - // If the field is final, the rules of Java say we are in <init> or <clinit>. // Note the presence of writes to final non-static fields, so that we // can insert a memory barrier later on to keep the writes from floating // out of the constructor. // Any method can write a @Stable field; insert memory barriers after those also. if (is_field && (field->is_final() || field->is_stable())) { - if (field->is_final()) { - set_wrote_final(true); - } - if (field->is_stable()) { - set_wrote_stable(true); - } - + set_wrote_final(true); // Preserve allocation ptr to create precedent edge to it in membar // generated on exit from constructor. if (C->eliminate_boxing() &&