src/share/vm/opto/phaseX.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/opto

src/share/vm/opto/phaseX.hpp

Print this page
rev 5464 : 8024070: C2 needs some form of type speculation
Summary: record unused type profile information with type system, propagate and use it.
Reviewed-by:
rev 5465 : imported patch speculative-cleanup


 482     n->set_req(i, in);
 483   }
 484 
 485   // Delete ith edge of "n"
 486   void delete_input_of(Node* n, int i) {
 487     rehash_node_delayed(n);
 488     n->del_req(i);
 489   }
 490 
 491   bool delay_transform() const { return _delay_transform; }
 492 
 493   void set_delay_transform(bool delay) {
 494     _delay_transform = delay;
 495   }
 496 
 497   // Clone loop predicates. Defined in loopTransform.cpp.
 498   Node* clone_loop_predicates(Node* old_entry, Node* new_entry, bool clone_limit_check);
 499   // Create a new if below new_entry for the predicate to be cloned
 500   ProjNode* create_new_if_for_predicate(ProjNode* cont_proj, Node* new_entry,
 501                                         Deoptimization::DeoptReason reason);


 502 
 503 #ifndef PRODUCT
 504 protected:
 505   // Sub-quadratic implementation of VerifyIterativeGVN.
 506   julong _verify_counter;
 507   julong _verify_full_passes;
 508   enum { _verify_window_size = 30 };
 509   Node* _verify_window[_verify_window_size];
 510   void verify_step(Node* n);
 511 #endif
 512 };
 513 
 514 //------------------------------PhaseCCP---------------------------------------
 515 // Phase for performing global Conditional Constant Propagation.
 516 // Should be replaced with combined CCP & GVN someday.
 517 class PhaseCCP : public PhaseIterGVN {
 518   // Non-recursive.  Use analysis to transform single Node.
 519   virtual Node *transform_once( Node *n );
 520 
 521 public:




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


src/share/vm/opto/phaseX.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File