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.