Mercurial > hg > truffle
diff src/share/vm/opto/phaseX.hpp @ 6244:611e8a669a2c
7147464: Java crashed while executing method with over 8k of dneg operations
Summary: replace recursive method with iterative
Reviewed-by: kvn, twisti
Contributed-by: dean.long@oracle.com
author | dlong |
---|---|
date | Mon, 16 Jul 2012 15:31:18 -0400 |
parents | 5e990493719e |
children | ee7edf31f688 |
line wrap: on
line diff
--- a/src/share/vm/opto/phaseX.hpp Fri Jul 13 20:14:27 2012 -0400 +++ b/src/share/vm/opto/phaseX.hpp Mon Jul 16 15:31:18 2012 -0400 @@ -403,6 +403,8 @@ // Subsume users of node 'old' into node 'nn' void subsume_node( Node *old, Node *nn ); + Node_Stack _stack; // Stack used to avoid recursion + protected: // Idealize new Node 'n' with respect to its inputs and its value @@ -438,8 +440,8 @@ // It is significant only for debugging and profiling. Node* register_new_node_with_optimizer(Node* n, Node* orig = NULL); - // Kill a globally dead Node. It is allowed to have uses which are - // assumed dead and left 'in limbo'. + // Kill a globally dead Node. All uses are also globally dead and are + // aggressively trimmed. void remove_globally_dead_node( Node *dead ); // Kill all inputs to a dead node, recursively making more dead nodes.