< prev index next >
src/hotspot/share/opto/compile.hpp
Print this page
@@ -81,11 +81,11 @@
class TypeData;
class TypeInt;
class TypePtr;
class TypeOopPtr;
class TypeFunc;
-class ValueTypePtrNode;
+class ValueTypeBaseNode;
class Unique_Node_List;
class nmethod;
class WarmCallInfo;
class Node_Stack;
struct Final_Reshape_Counts;
@@ -414,11 +414,11 @@
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
+ Unique_Node_List* _value_type_nodes; // List of ValueType nodes
ConnectionGraph* _congraph;
#ifndef PRODUCT
IdealGraphPrinter* _printer;
#endif
@@ -807,20 +807,15 @@
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);
- bool can_add_value_type_ptr() const { return _value_type_ptr_nodes != NULL; }
+ // Keep track of value type nodes for later processing
+ void add_value_type(Node* n);
+ void remove_value_type(Node* n);
+ void process_value_types(PhaseIterGVN &igvn);
+ bool can_add_value_type() const { return _value_type_nodes != NULL; }
// 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) {
< prev index next >