< prev index next >

src/hotspot/share/opto/phaseX.hpp

Print this page
@@ -465,11 +465,11 @@
    PhaseIterGVN(PhaseIterGVN* igvn); // Used by CCP constructor
    PhaseIterGVN(PhaseGVN* gvn); // Used after Parser
  
    // Idealize new Node 'n' with respect to its inputs and its value
    virtual Node *transform( Node *a_node );
-   virtual void record_for_igvn(Node *n) { }
+   virtual void record_for_igvn(Node *n) { _worklist.push(n); }
  
    Unique_Node_List _worklist;       // Iterative worklist
  
    // Given def-use info and an initial worklist, apply Node::Ideal,
    // Node::Value, Node::Identity, hash-based value numbering, Node::Ideal_DU

@@ -515,10 +515,12 @@
      add_users_to_worklist(old);
      hash_delete(old); // Yank from hash before hacking edges
      subsume_node(old, nn);
    }
  
+   void replace_in_uses(Node* n, Node* m);
+ 
    // 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);

@@ -563,10 +565,13 @@
  
  //------------------------------PhaseCCP---------------------------------------
  // Phase for performing global Conditional Constant Propagation.
  // Should be replaced with combined CCP & GVN someday.
  class PhaseCCP : public PhaseIterGVN {
+   GrowableArray<Node*> _trstack; // Stack for transform operation
+   Unique_Node_List _useful;      // Nodes reachable from the bottom
+ 
    // Non-recursive.  Use analysis to transform single Node.
    virtual Node *transform_once( Node *n );
  
  public:
    PhaseCCP( PhaseIterGVN *igvn ); // Compute conditional constants
< prev index next >