# HG changeset patch # User thartmann # Date 1480403775 -3600 # Node ID 57803c5a2f13862dfd42c10420491c59fc560f8c # Parent 6b4a25ec5eafce0757b3b5121aa6ec44923e723e 8168996: C2 crash at postaloc.cpp:140 : assert(false) failed: unexpected yanked node Summary: Prevent MemBarAcquire from keeping a LoadNNode alive by adding it to the worklist if it is the only user of a DecodeNNode. Reviewed-by: kvn, adinn diff -r 6b4a25ec5eaf -r 57803c5a2f13 src/share/vm/opto/node.cpp --- a/src/share/vm/opto/node.cpp Thu Jan 07 17:54:45 2021 +0000 +++ b/src/share/vm/opto/node.cpp Tue Nov 29 08:16:15 2016 +0100 @@ -1153,8 +1153,8 @@ 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 + } else if (this->is_Load() || this->is_DecodeN()) { + // Condition for removing an unused LoadNode or DecodeNNode 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))