src/share/vm/opto/phaseX.hpp

Print this page




 480   void delete_input_of(Node* n, int i) {
 481     rehash_node_delayed(n);
 482     n->del_req(i);
 483   }
 484 
 485   bool delay_transform() const { return _delay_transform; }
 486 
 487   void set_delay_transform(bool delay) {
 488     _delay_transform = delay;
 489   }
 490 
 491   // Clone loop predicates. Defined in loopTransform.cpp.
 492   Node* clone_loop_predicates(Node* old_entry, Node* new_entry, bool clone_limit_check);
 493   // Create a new if below new_entry for the predicate to be cloned
 494   ProjNode* create_new_if_for_predicate(ProjNode* cont_proj, Node* new_entry,
 495                                         Deoptimization::DeoptReason reason);
 496 
 497 #ifndef PRODUCT
 498 protected:
 499   // Sub-quadratic implementation of VerifyIterativeGVN.
 500   unsigned long _verify_counter;
 501   unsigned long _verify_full_passes;
 502   enum { _verify_window_size = 30 };
 503   Node* _verify_window[_verify_window_size];
 504   void verify_step(Node* n);
 505 #endif
 506 };
 507 
 508 //------------------------------PhaseCCP---------------------------------------
 509 // Phase for performing global Conditional Constant Propagation.
 510 // Should be replaced with combined CCP & GVN someday.
 511 class PhaseCCP : public PhaseIterGVN {
 512   // Non-recursive.  Use analysis to transform single Node.
 513   virtual Node *transform_once( Node *n );
 514 
 515 public:
 516   PhaseCCP( PhaseIterGVN *igvn ); // Compute conditional constants
 517   NOT_PRODUCT( ~PhaseCCP(); )
 518 
 519   // Worklist algorithm identifies constants
 520   void analyze();
 521   // Recursive traversal of program.  Used analysis to modify program.




 480   void delete_input_of(Node* n, int i) {
 481     rehash_node_delayed(n);
 482     n->del_req(i);
 483   }
 484 
 485   bool delay_transform() const { return _delay_transform; }
 486 
 487   void set_delay_transform(bool delay) {
 488     _delay_transform = delay;
 489   }
 490 
 491   // Clone loop predicates. Defined in loopTransform.cpp.
 492   Node* clone_loop_predicates(Node* old_entry, Node* new_entry, bool clone_limit_check);
 493   // Create a new if below new_entry for the predicate to be cloned
 494   ProjNode* create_new_if_for_predicate(ProjNode* cont_proj, Node* new_entry,
 495                                         Deoptimization::DeoptReason reason);
 496 
 497 #ifndef PRODUCT
 498 protected:
 499   // Sub-quadratic implementation of VerifyIterativeGVN.
 500   julong _verify_counter;
 501   julong _verify_full_passes;
 502   enum { _verify_window_size = 30 };
 503   Node* _verify_window[_verify_window_size];
 504   void verify_step(Node* n);
 505 #endif
 506 };
 507 
 508 //------------------------------PhaseCCP---------------------------------------
 509 // Phase for performing global Conditional Constant Propagation.
 510 // Should be replaced with combined CCP & GVN someday.
 511 class PhaseCCP : public PhaseIterGVN {
 512   // Non-recursive.  Use analysis to transform single Node.
 513   virtual Node *transform_once( Node *n );
 514 
 515 public:
 516   PhaseCCP( PhaseIterGVN *igvn ); // Compute conditional constants
 517   NOT_PRODUCT( ~PhaseCCP(); )
 518 
 519   // Worklist algorithm identifies constants
 520   void analyze();
 521   // Recursive traversal of program.  Used analysis to modify program.