< prev index next >

src/share/vm/opto/compile.hpp

Print this page

        

*** 81,90 **** --- 81,91 ---- class TypeData; class TypeInt; class TypePtr; class TypeOopPtr; class TypeFunc; + class ValueTypePtrNode; class Unique_Node_List; class nmethod; class WarmCallInfo; class Node_Stack; struct Final_Reshape_Counts;
*** 413,422 **** --- 414,424 ---- GrowableArray<CallGenerator*>* _intrinsics; // List of intrinsics. GrowableArray<Node*>* _macro_nodes; // List of nodes which need to be expanded before matching. GrowableArray<Node*>* _predicate_opaqs; // List of Opaque1 nodes for the loop predicates. GrowableArray<Node*>* _expensive_nodes; // List of nodes that are expensive to compute and that we'd better not let the GVN freely common GrowableArray<Node*>* _range_check_casts; // List of CastII nodes with a range check dependency + GrowableArray<ValueTypePtrNode*>* _value_type_ptr_nodes; // List of ValueTypePtr nodes ConnectionGraph* _congraph; #ifndef PRODUCT IdealGraphPrinter* _printer; #endif
*** 805,814 **** --- 807,826 ---- Node* range_check_cast_node(int idx) const { return _range_check_casts->at(idx); } int range_check_cast_count() const { return _range_check_casts->length(); } // Remove all range check dependent CastIINodes. void remove_range_check_casts(PhaseIterGVN &igvn); + void add_value_type_ptr(ValueTypePtrNode* n); + void remove_value_type_ptr(ValueTypePtrNode* n) { + if (_value_type_ptr_nodes->contains(n)) { + _value_type_ptr_nodes->remove(n); + } + } + ValueTypePtrNode* value_type_ptr(int idx) const { return _value_type_ptr_nodes->at(idx); } + int value_type_ptr_count() const { return _value_type_ptr_nodes->length(); } + void process_value_type_ptr_nodes(PhaseIterGVN &igvn); + // remove the opaque nodes that protect the predicates so that the unused checks and // uncommon traps will be eliminated from the graph. void cleanup_loop_predicates(PhaseIterGVN &igvn); bool is_predicate_opaq(Node * n) { return _predicate_opaqs->contains(n);
< prev index next >