Mercurial > hg > truffle
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; }