< prev index next >

src/hotspot/share/opto/node.hpp

Print this page




1709 protected:
1710   virtual uint hash() const;    // Check the type
1711   virtual uint cmp( const Node &n ) const;
1712   virtual uint size_of() const; // Size is bigger
1713   const Type* const _type;
1714 public:
1715   void set_type(const Type* t) {
1716     assert(t != NULL, "sanity");
1717     debug_only(uint check_hash = (VerifyHashTableKeys && _hash_lock) ? hash() : NO_HASH);
1718     *(const Type**)&_type = t;   // cast away const-ness
1719     // If this node is in the hash table, make sure it doesn't need a rehash.
1720     assert(check_hash == NO_HASH || check_hash == hash(), "type change must preserve hash code");
1721   }
1722   const Type* type() const { assert(_type != NULL, "sanity"); return _type; };
1723   TypeNode( const Type *t, uint required ) : Node(required), _type(t) {
1724     init_class_id(Class_Type);
1725   }
1726   virtual const Type* Value(PhaseGVN* phase) const;
1727   virtual const Type *bottom_type() const;
1728   virtual       uint  ideal_reg() const;
1729 
1730 #ifndef PRODUCT
1731   virtual void dump_spec(outputStream *st) const;
1732   virtual void dump_compact_spec(outputStream *st) const;
1733 #endif
1734 };
1735 
1736 #endif // SHARE_VM_OPTO_NODE_HPP


1709 protected:
1710   virtual uint hash() const;    // Check the type
1711   virtual uint cmp( const Node &n ) const;
1712   virtual uint size_of() const; // Size is bigger
1713   const Type* const _type;
1714 public:
1715   void set_type(const Type* t) {
1716     assert(t != NULL, "sanity");
1717     debug_only(uint check_hash = (VerifyHashTableKeys && _hash_lock) ? hash() : NO_HASH);
1718     *(const Type**)&_type = t;   // cast away const-ness
1719     // If this node is in the hash table, make sure it doesn't need a rehash.
1720     assert(check_hash == NO_HASH || check_hash == hash(), "type change must preserve hash code");
1721   }
1722   const Type* type() const { assert(_type != NULL, "sanity"); return _type; };
1723   TypeNode( const Type *t, uint required ) : Node(required), _type(t) {
1724     init_class_id(Class_Type);
1725   }
1726   virtual const Type* Value(PhaseGVN* phase) const;
1727   virtual const Type *bottom_type() const;
1728   virtual       uint  ideal_reg() const;

1729 #ifndef PRODUCT
1730   virtual void dump_spec(outputStream *st) const;
1731   virtual void dump_compact_spec(outputStream *st) const;
1732 #endif
1733 };
1734 
1735 #endif // SHARE_VM_OPTO_NODE_HPP
< prev index next >