1.1 --- a/src/share/vm/opto/matcher.cpp Fri Nov 22 12:14:09 2013 -0800 1.2 +++ b/src/share/vm/opto/matcher.cpp Tue Nov 26 18:38:19 2013 -0800 1.3 @@ -2333,7 +2333,7 @@ 1.4 bool Matcher::post_store_load_barrier(const Node* vmb) { 1.5 Compile* C = Compile::current(); 1.6 assert(vmb->is_MemBar(), ""); 1.7 - assert(vmb->Opcode() != Op_MemBarAcquire, ""); 1.8 + assert(vmb->Opcode() != Op_MemBarAcquire && vmb->Opcode() != Op_LoadFence, ""); 1.9 const MemBarNode* membar = vmb->as_MemBar(); 1.10 1.11 // Get the Ideal Proj node, ctrl, that can be used to iterate forward 1.12 @@ -2378,7 +2378,7 @@ 1.13 if (x->is_MemBar()) { 1.14 // We must retain this membar if there is an upcoming volatile 1.15 // load, which will be followed by acquire membar. 1.16 - if (xop == Op_MemBarAcquire) { 1.17 + if (xop == Op_MemBarAcquire || xop == Op_LoadFence) { 1.18 return false; 1.19 } else { 1.20 // For other kinds of barriers, check by pretending we