Mercurial > hg > truffle
diff src/share/vm/opto/phaseX.hpp @ 6144:5e990493719e
7173340: C2: code cleanup: use PhaseIterGVN::replace_edge(Node*, int, Node*) where applicable
Summary: replace frequent C2 optimizer code patterns with new methods calls
Reviewed-by: kvn, twisti
Contributed-by: vladimir.x.ivanov@oracle.com
author | kvn |
---|---|
date | Tue, 12 Jun 2012 16:23:31 -0700 |
parents | 35acf8f0a2e4 |
children | 611e8a669a2c 1d7922586cf6 |
line wrap: on
line diff
--- a/src/share/vm/opto/phaseX.hpp Tue Jun 12 14:31:44 2012 -0700 +++ b/src/share/vm/opto/phaseX.hpp Tue Jun 12 16:23:31 2012 -0700 @@ -460,6 +460,25 @@ subsume_node(old, nn); } + // Delayed node rehash: remove a node from the hash table and rehash it during + // next optimizing pass + void rehash_node_delayed(Node* n) { + hash_delete(n); + _worklist.push(n); + } + + // Replace ith edge of "n" with "in" + void replace_input_of(Node* n, int i, Node* in) { + rehash_node_delayed(n); + n->set_req(i, in); + } + + // Delete ith edge of "n" + void delete_input_of(Node* n, int i) { + rehash_node_delayed(n); + n->del_req(i); + } + bool delay_transform() const { return _delay_transform; } void set_delay_transform(bool delay) {