src/share/vm/opto/type.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot Sdiff src/share/vm/opto

src/share/vm/opto/type.hpp

Print this page




 919   static const TypeRawPtr *make( address bits );
 920 
 921   // Return a 'ptr' version of this type
 922   virtual const Type *cast_to_ptr_type(PTR ptr) const;
 923 
 924   virtual intptr_t get_con() const;
 925 
 926   virtual const TypePtr *add_offset( intptr_t offset ) const;
 927 
 928   virtual const Type *xmeet( const Type *t ) const;
 929   virtual const Type *xdual() const;    // Compute dual right now.
 930   // Convenience common pre-built types.
 931   static const TypeRawPtr *BOTTOM;
 932   static const TypeRawPtr *NOTNULL;
 933 #ifndef PRODUCT
 934   virtual void dump2( Dict &d, uint depth, outputStream *st  ) const;
 935 #endif
 936 };
 937 
 938 //------------------------------TypeOopPtr-------------------------------------
 939 // Some kind of oop (Java pointer), either klass or instance or array.
 940 class TypeOopPtr : public TypePtr {
 941 protected:
 942   TypeOopPtr(TYPES t, PTR ptr, ciKlass* k, bool xk, ciObject* o, int offset, int instance_id,
 943              const TypePtr* speculative, int inline_depth);
 944 public:
 945   virtual bool eq( const Type *t ) const;
 946   virtual int  hash() const;             // Type specific hashing
 947   virtual bool singleton(void) const;    // TRUE if type is a singleton
 948   enum {
 949    InstanceTop = -1,   // undefined instance
 950    InstanceBot = 0     // any possible instance
 951   };
 952 protected:
 953 
 954   // Oop is NULL, unless this is a constant oop.
 955   ciObject*     _const_oop;   // Constant oop
 956   // If _klass is NULL, then so is _sig.  This is an unloaded klass.
 957   ciKlass*      _klass;       // Klass object
 958   // Does the type exclude subclasses of the klass?  (Inexact == polymorphic.)
 959   bool          _klass_is_exact;




 919   static const TypeRawPtr *make( address bits );
 920 
 921   // Return a 'ptr' version of this type
 922   virtual const Type *cast_to_ptr_type(PTR ptr) const;
 923 
 924   virtual intptr_t get_con() const;
 925 
 926   virtual const TypePtr *add_offset( intptr_t offset ) const;
 927 
 928   virtual const Type *xmeet( const Type *t ) const;
 929   virtual const Type *xdual() const;    // Compute dual right now.
 930   // Convenience common pre-built types.
 931   static const TypeRawPtr *BOTTOM;
 932   static const TypeRawPtr *NOTNULL;
 933 #ifndef PRODUCT
 934   virtual void dump2( Dict &d, uint depth, outputStream *st  ) const;
 935 #endif
 936 };
 937 
 938 //------------------------------TypeOopPtr-------------------------------------
 939 // Some kind of oop (Java pointer), either instance or array.
 940 class TypeOopPtr : public TypePtr {
 941 protected:
 942   TypeOopPtr(TYPES t, PTR ptr, ciKlass* k, bool xk, ciObject* o, int offset, int instance_id,
 943              const TypePtr* speculative, int inline_depth);
 944 public:
 945   virtual bool eq( const Type *t ) const;
 946   virtual int  hash() const;             // Type specific hashing
 947   virtual bool singleton(void) const;    // TRUE if type is a singleton
 948   enum {
 949    InstanceTop = -1,   // undefined instance
 950    InstanceBot = 0     // any possible instance
 951   };
 952 protected:
 953 
 954   // Oop is NULL, unless this is a constant oop.
 955   ciObject*     _const_oop;   // Constant oop
 956   // If _klass is NULL, then so is _sig.  This is an unloaded klass.
 957   ciKlass*      _klass;       // Klass object
 958   // Does the type exclude subclasses of the klass?  (Inexact == polymorphic.)
 959   bool          _klass_is_exact;


src/share/vm/opto/type.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File