diff src/share/vm/opto/node.cpp @ 20413:91cb3b8aac2b

8048879: "unexpected yanked node" opto/postaloc.cpp:139 Summary: MemBarAcquireNode prevents deletion of dead LoadNNode. Added condition to 'has_special_unique_user' to trigger deletion. Reviewed-by: kvn, iveresov
author thartmann
date Tue, 19 Aug 2014 07:36:11 +0200
parents 411e30e5fbb8
children 9e69e8d1c900
line wrap: on
line diff
--- a/src/share/vm/opto/node.cpp	Fri Sep 05 15:10:41 2014 -0700
+++ b/src/share/vm/opto/node.cpp	Tue Aug 19 07:36:11 2014 +0200
@@ -1093,6 +1093,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;