comparison src/share/vm/opto/phaseX.hpp @ 14383:5ec7dace41a6

8027422: assert(_gvn.type(obj)->higher_equal(tjp)) failed: cast_up is no longer needed Summary: type methods shouldn't always operate on speculative part Reviewed-by: kvn, twisti
author roland
date Fri, 24 Jan 2014 09:31:53 +0100
parents de6a9e811145
children 4ca6dc0799b6
comparison
equal deleted inserted replaced
14272:757ec609d8d5 14383:5ec7dace41a6
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;