< prev index next >

src/hotspot/share/opto/valuetypenode.hpp

Print this page

        

*** 37,52 **** init_class_id(Class_ValueTypeBase); Compile::current()->add_value_type(this); } enum { Control, // Control input ! Oop, // Oop of TypeValueTypePtr Values // Nodes corresponding to values of the value type's fields. // Nodes are connected in increasing order of the index of the field they correspond to. }; ! virtual const TypeValueTypePtr* value_type_ptr() const = 0; // Get the klass defining the field layout of the value type virtual ciValueKlass* value_klass() const = 0; int make_scalar_in_safepoint(Unique_Node_List& worklist, SafePointNode* sfpt, Node* root, PhaseGVN* gvn); --- 37,52 ---- init_class_id(Class_ValueTypeBase); Compile::current()->add_value_type(this); } enum { Control, // Control input ! Oop, // Oop of TypeInstPtr Values // Nodes corresponding to values of the value type's fields. // Nodes are connected in increasing order of the index of the field they correspond to. }; ! virtual const TypeInstPtr* value_ptr() const = 0; // Get the klass defining the field layout of the value type virtual ciValueKlass* value_klass() const = 0; int make_scalar_in_safepoint(Unique_Node_List& worklist, SafePointNode* sfpt, Node* root, PhaseGVN* gvn);
*** 108,118 **** Node* is_loaded(PhaseGVN* phase, ciValueKlass* vk = NULL, Node* base = NULL, int holder_offset = 0); // Checks if the value type fields are all set to default values bool is_default(PhaseGVN& gvn) const; ! const TypeValueTypePtr* value_type_ptr() const { return TypeValueTypePtr::make(TypePtr::BotPTR, value_klass()); } ciValueKlass* value_klass() const { return type()->is_valuetype()->value_klass(); } public: // Create uninitialized static ValueTypeNode* make_uninitialized(PhaseGVN& gvn, ciValueKlass* klass); --- 108,118 ---- Node* is_loaded(PhaseGVN* phase, ciValueKlass* vk = NULL, Node* base = NULL, int holder_offset = 0); // Checks if the value type fields are all set to default values bool is_default(PhaseGVN& gvn) const; ! const TypeInstPtr* value_ptr() const { return TypeInstPtr::make(TypePtr::BotPTR, value_klass()); } ciValueKlass* value_klass() const { return type()->is_valuetype()->value_klass(); } public: // Create uninitialized static ValueTypeNode* make_uninitialized(PhaseGVN& gvn, ciValueKlass* klass);
*** 146,160 **** //------------------------------ValueTypePtrNode------------------------------------- // Node representing a value type as a pointer in C2 IR class ValueTypePtrNode : public ValueTypeBaseNode { private: ! const TypeValueTypePtr* value_type_ptr() const { return type()->isa_valuetypeptr(); } ! ciValueKlass* value_klass() const { return value_type_ptr()->value_klass(); } ValueTypePtrNode(ciValueKlass* vk, Node* oop) ! : ValueTypeBaseNode(TypeValueTypePtr::make(TypePtr::NotNull, vk), Values + vk->nof_declared_nonstatic_fields()) { init_class_id(Class_ValueTypePtr); init_req(Oop, oop); } public: --- 146,160 ---- //------------------------------ValueTypePtrNode------------------------------------- // Node representing a value type as a pointer in C2 IR class ValueTypePtrNode : public ValueTypeBaseNode { private: ! const TypeInstPtr* value_ptr() const { return type()->isa_instptr(); } ! ciValueKlass* value_klass() const { return value_ptr()->value_klass(); } ValueTypePtrNode(ciValueKlass* vk, Node* oop) ! : ValueTypeBaseNode(TypeInstPtr::make(TypePtr::NotNull, vk), Values + vk->nof_declared_nonstatic_fields()) { init_class_id(Class_ValueTypePtr); init_req(Oop, oop); } public:
< prev index next >