--- old/src/share/vm/opto/node.cpp 2014-08-18 11:12:11.513309385 +0200 +++ new/src/share/vm/opto/node.cpp 2014-08-18 11:12:11.437309383 +0200 @@ -1083,6 +1083,9 @@ if( this->is_Store() ) { // Condition for back-to-back stores folding. return n->Opcode() == op && n->in(MemNode::Memory) == this; + } else if (this->is_Load()) { + // Condition for removing an unused LoadNode from the MemBarAcquire precedence input + return n->Opcode() == Op_MemBarAcquire; } else if( op == Op_AddL ) { // Condition for convL2I(addL(x,y)) ==> addI(convL2I(x),convL2I(y)) return n->Opcode() == Op_ConvL2I && n->in(1) == this;