90 assert(table_index < _max, "Must be within table"); |
90 assert(table_index < _max, "Must be within table"); |
91 return _table[table_index]; |
91 return _table[table_index]; |
92 } |
92 } |
93 |
93 |
94 void remove_useless_nodes(VectorSet &useful); // replace with sentinel |
94 void remove_useless_nodes(VectorSet &useful); // replace with sentinel |
95 void replace_with(NodeHash* nh); |
95 void replace_with(NodeHash* nh); |
|
96 void check_no_speculative_types(); // Check no speculative part for type nodes in table |
96 |
97 |
97 Node *sentinel() { return _sentinel; } |
98 Node *sentinel() { return _sentinel; } |
98 |
99 |
99 #ifndef PRODUCT |
100 #ifndef PRODUCT |
100 Node *find_index(uint idx); // For debugging |
101 Node *find_index(uint idx); // For debugging |
499 // Create a new if below new_entry for the predicate to be cloned |
500 // 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 ProjNode* create_new_if_for_predicate(ProjNode* cont_proj, Node* new_entry, |
501 Deoptimization::DeoptReason reason); |
502 Deoptimization::DeoptReason reason); |
502 |
503 |
503 void remove_speculative_types(); |
504 void remove_speculative_types(); |
|
505 void check_no_speculative_types() { |
|
506 _table.check_no_speculative_types(); |
|
507 } |
504 |
508 |
505 #ifndef PRODUCT |
509 #ifndef PRODUCT |
506 protected: |
510 protected: |
507 // Sub-quadratic implementation of VerifyIterativeGVN. |
511 // Sub-quadratic implementation of VerifyIterativeGVN. |
508 julong _verify_counter; |
512 julong _verify_counter; |