comparison 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
comparison
equal deleted inserted replaced
20412:7ff83df6c85a 20413:91cb3b8aac2b
1091 Node* n = unique_out(); 1091 Node* n = unique_out();
1092 int op = Opcode(); 1092 int op = Opcode();
1093 if( this->is_Store() ) { 1093 if( this->is_Store() ) {
1094 // Condition for back-to-back stores folding. 1094 // Condition for back-to-back stores folding.
1095 return n->Opcode() == op && n->in(MemNode::Memory) == this; 1095 return n->Opcode() == op && n->in(MemNode::Memory) == this;
1096 } else if (this->is_Load()) {
1097 // Condition for removing an unused LoadNode from the MemBarAcquire precedence input
1098 return n->Opcode() == Op_MemBarAcquire;
1096 } else if( op == Op_AddL ) { 1099 } else if( op == Op_AddL ) {
1097 // Condition for convL2I(addL(x,y)) ==> addI(convL2I(x),convL2I(y)) 1100 // Condition for convL2I(addL(x,y)) ==> addI(convL2I(x),convL2I(y))
1098 return n->Opcode() == Op_ConvL2I && n->in(1) == this; 1101 return n->Opcode() == Op_ConvL2I && n->in(1) == this;
1099 } else if( op == Op_SubI || op == Op_SubL ) { 1102 } else if( op == Op_SubI || op == Op_SubL ) {
1100 // Condition for subI(x,subI(y,z)) ==> subI(addI(x,z),y) 1103 // Condition for subI(x,subI(y,z)) ==> subI(addI(x,z),y)