< prev index next >

src/hotspot/share/opto/type.hpp

Print this page




1104   // be a TypeInstPtr, but may also be a TypeInt::INT for int.class, etc.
1105   ciType* java_mirror_type() const;
1106 
1107   virtual const Type *cast_to_ptr_type(PTR ptr) const;
1108 
1109   virtual const Type *cast_to_exactness(bool klass_is_exact) const;
1110 
1111   virtual const TypeOopPtr *cast_to_instance_id(int instance_id) const;
1112 
1113   virtual const TypePtr *add_offset( intptr_t offset ) const;
1114 
1115   // Speculative type helper methods.
1116   virtual const Type* remove_speculative() const;
1117   virtual const TypePtr* with_inline_depth(int depth) const;
1118 
1119   // the core of the computation of the meet of 2 types
1120   virtual const Type *xmeet_helper(const Type *t) const;
1121   virtual const TypeInstPtr *xmeet_unloaded( const TypeInstPtr *t ) const;
1122   virtual const Type *xdual() const;    // Compute dual right now.
1123 



1124   // Convenience common pre-built types.
1125   static const TypeInstPtr *NOTNULL;
1126   static const TypeInstPtr *BOTTOM;
1127   static const TypeInstPtr *MIRROR;
1128   static const TypeInstPtr *MARK;
1129   static const TypeInstPtr *KLASS;
1130 #ifndef PRODUCT
1131   virtual void dump2( Dict &d, uint depth, outputStream *st ) const; // Specialized per-Type dumping
1132 #endif
1133 };
1134 
1135 //------------------------------TypeAryPtr-------------------------------------
1136 // Class of Java array pointers
1137 class TypeAryPtr : public TypeOopPtr {
1138   TypeAryPtr( PTR ptr, ciObject* o, const TypeAry *ary, ciKlass* k, bool xk,
1139               int offset, int instance_id, bool is_autobox_cache,
1140               const TypePtr* speculative, int inline_depth)
1141     : TypeOopPtr(AryPtr,ptr,k,xk,o,offset, instance_id, speculative, inline_depth),
1142     _ary(ary),
1143     _is_autobox_cache(is_autobox_cache)




1104   // be a TypeInstPtr, but may also be a TypeInt::INT for int.class, etc.
1105   ciType* java_mirror_type() const;
1106 
1107   virtual const Type *cast_to_ptr_type(PTR ptr) const;
1108 
1109   virtual const Type *cast_to_exactness(bool klass_is_exact) const;
1110 
1111   virtual const TypeOopPtr *cast_to_instance_id(int instance_id) const;
1112 
1113   virtual const TypePtr *add_offset( intptr_t offset ) const;
1114 
1115   // Speculative type helper methods.
1116   virtual const Type* remove_speculative() const;
1117   virtual const TypePtr* with_inline_depth(int depth) const;
1118 
1119   // the core of the computation of the meet of 2 types
1120   virtual const Type *xmeet_helper(const Type *t) const;
1121   virtual const TypeInstPtr *xmeet_unloaded( const TypeInstPtr *t ) const;
1122   virtual const Type *xdual() const;    // Compute dual right now.
1123 
1124   const bool     is_value_based() const;
1125   const bool can_be_value_based() const;
1126 
1127   // Convenience common pre-built types.
1128   static const TypeInstPtr *NOTNULL;
1129   static const TypeInstPtr *BOTTOM;
1130   static const TypeInstPtr *MIRROR;
1131   static const TypeInstPtr *MARK;
1132   static const TypeInstPtr *KLASS;
1133 #ifndef PRODUCT
1134   virtual void dump2( Dict &d, uint depth, outputStream *st ) const; // Specialized per-Type dumping
1135 #endif
1136 };
1137 
1138 //------------------------------TypeAryPtr-------------------------------------
1139 // Class of Java array pointers
1140 class TypeAryPtr : public TypeOopPtr {
1141   TypeAryPtr( PTR ptr, ciObject* o, const TypeAry *ary, ciKlass* k, bool xk,
1142               int offset, int instance_id, bool is_autobox_cache,
1143               const TypePtr* speculative, int inline_depth)
1144     : TypeOopPtr(AryPtr,ptr,k,xk,o,offset, instance_id, speculative, inline_depth),
1145     _ary(ary),
1146     _is_autobox_cache(is_autobox_cache)


< prev index next >