changeset 10895:57803c5a2f13

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
author thartmann
date Tue, 29 Nov 2016 08:16:15 +0100
parents 6b4a25ec5eaf
children c80a6fd21394
files src/share/vm/opto/node.cpp
diffstat 1 files changed, 2 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- 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))