< prev index next >

src/hotspot/share/opto/valuetypenode.hpp

Print this page

        

*** 30,42 **** class GraphKit; class ValueTypeBaseNode : public TypeNode { protected: ! ValueTypeBaseNode(const Type* t, int nb_fields) : TypeNode(t, nb_fields) { init_class_id(Class_ValueTypeBase); } enum { Control, // Control input Oop, // Oop of TypeValueTypePtr Values // Nodes corresponding to values of the value type's fields. --- 30,43 ---- class GraphKit; class ValueTypeBaseNode : public TypeNode { protected: ! ValueTypeBaseNode(const Type* t, int nb_fields, Compile* C) : TypeNode(t, nb_fields) { init_class_id(Class_ValueTypeBase); + C->add_value_type(this); } enum { Control, // Control input Oop, // Oop of TypeValueTypePtr Values // Nodes corresponding to values of the value type's fields.
*** 91,102 **** //------------------------------ValueTypeNode------------------------------------- // Node representing a value type in C2 IR class ValueTypeNode : public ValueTypeBaseNode { friend class ValueTypeBaseNode; private: ! ValueTypeNode(const TypeValueType* t, Node* oop) ! : ValueTypeBaseNode(t, Values + t->value_klass()->nof_declared_nonstatic_fields()) { init_class_id(Class_ValueType); init_req(Oop, oop); } // Checks if the value type is loaded from memory and if so returns the oop --- 92,103 ---- //------------------------------ValueTypeNode------------------------------------- // Node representing a value type in C2 IR class ValueTypeNode : public ValueTypeBaseNode { friend class ValueTypeBaseNode; private: ! ValueTypeNode(const TypeValueType* t, Node* oop, Compile* C) ! : ValueTypeBaseNode(t, Values + t->value_klass()->nof_declared_nonstatic_fields(), C) { init_class_id(Class_ValueType); init_req(Oop, oop); } // Checks if the value type is loaded from memory and if so returns the oop
*** 144,168 **** private: ciValueKlass* value_klass() const { return type()->is_valuetypeptr()->value_type()->value_klass(); } const TypeValueTypePtr* value_type_ptr() const { return bottom_type()->isa_valuetypeptr(); } ValueTypePtrNode(ciValueKlass* vk, Node* oop, Compile* C) ! : ValueTypeBaseNode(TypeValueTypePtr::make(TypePtr::NotNull, vk), Values + vk->nof_declared_nonstatic_fields()) { init_class_id(Class_ValueTypePtr); init_req(Oop, oop); - C->add_value_type_ptr(this); } public: ValueTypePtrNode(ValueTypeNode* vt, Node* oop, Compile* C) ! : ValueTypeBaseNode(TypeValueTypePtr::make(vt->type()->is_valuetype())->cast_to_ptr_type(TypePtr::NotNull), vt->req()) { init_class_id(Class_ValueTypePtr); for (uint i = Oop+1; i < vt->req(); i++) { init_req(i, vt->in(i)); } init_req(Oop, oop); - C->add_value_type_ptr(this); } static ValueTypePtrNode* make(GraphKit* kit, ciValueKlass* vk, CallNode* call); static ValueTypePtrNode* make(PhaseGVN& gvn, Node*& ctl, Node* mem, Node* oop); virtual int Opcode() const; --- 145,167 ---- private: ciValueKlass* value_klass() const { return type()->is_valuetypeptr()->value_type()->value_klass(); } const TypeValueTypePtr* value_type_ptr() const { return bottom_type()->isa_valuetypeptr(); } ValueTypePtrNode(ciValueKlass* vk, Node* oop, Compile* C) ! : ValueTypeBaseNode(TypeValueTypePtr::make(TypePtr::NotNull, vk), Values + vk->nof_declared_nonstatic_fields(), C) { init_class_id(Class_ValueTypePtr); init_req(Oop, oop); } public: ValueTypePtrNode(ValueTypeNode* vt, Node* oop, Compile* C) ! : ValueTypeBaseNode(TypeValueTypePtr::make(vt->type()->is_valuetype())->cast_to_ptr_type(TypePtr::NotNull), vt->req(), C) { init_class_id(Class_ValueTypePtr); for (uint i = Oop+1; i < vt->req(); i++) { init_req(i, vt->in(i)); } init_req(Oop, oop); } static ValueTypePtrNode* make(GraphKit* kit, ciValueKlass* vk, CallNode* call); static ValueTypePtrNode* make(PhaseGVN& gvn, Node*& ctl, Node* mem, Node* oop); virtual int Opcode() const;
< prev index next >