Mercurial > hg > truffle
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) |