diff src/share/vm/opto/phaseX.cpp @ 1621:6027dddc26c6

6677629: PhaseIterGVN::subsume_node() should call hash_delete() and add_users_to_worklist() Summary: Use replace_node() method instead of subsume_node(). Reviewed-by: jrose, never
author kvn
date Mon, 28 Jun 2010 14:54:39 -0700
parents c18cbe5936b8
children 56601ef83436
line wrap: on
line diff
--- a/src/share/vm/opto/phaseX.cpp	Mon Jun 28 10:52:50 2010 -0700
+++ b/src/share/vm/opto/phaseX.cpp	Mon Jun 28 14:54:39 2010 -0700
@@ -1447,16 +1447,12 @@
           Node* m = n->out(i);
           if( m->is_Phi() ) {
             assert(type(m) == Type::TOP, "Unreachable region should not have live phis.");
-            add_users_to_worklist(m);
-            hash_delete(m); // Yank from hash before hacking edges
-            subsume_node(m, nn);
+            replace_node(m, nn);
             --i; // deleted this phi; rescan starting with next position
           }
         }
       }
-      add_users_to_worklist(n); // Users of about-to-be-constant 'n'
-      hash_delete(n);           // Removed 'n' from table before subsuming it
-      subsume_node(n,nn);       // Update DefUse edges for new constant
+      replace_node(n,nn);       // Update DefUse edges for new constant
     }
     return nn;
   }