< prev index next >

src/share/vm/opto/type.hpp

Print this page

        

*** 980,991 **** //------------------------------TypeOopPtr------------------------------------- // Some kind of oop (Java pointer), either klass or instance or array. class TypeOopPtr : public TypePtr { protected: ! TypeOopPtr(TYPES t, PTR ptr, ciKlass* k, bool xk, ciObject* o, Offset offset, int instance_id, ! const TypePtr* speculative, int inline_depth); public: virtual bool eq( const Type *t ) const; virtual int hash() const; // Type specific hashing virtual bool singleton(void) const; // TRUE if type is a singleton enum { --- 980,991 ---- //------------------------------TypeOopPtr------------------------------------- // Some kind of oop (Java pointer), either klass or instance or array. class TypeOopPtr : public TypePtr { protected: ! TypeOopPtr(TYPES t, PTR ptr, ciKlass* k, bool xk, ciObject* o, Offset offset, Offset field_offset, ! int instance_id, const TypePtr* speculative, int inline_depth); public: virtual bool eq( const Type *t ) const; virtual int hash() const; // Type specific hashing virtual bool singleton(void) const; // TRUE if type is a singleton enum {
*** 1172,1185 **** }; //------------------------------TypeAryPtr------------------------------------- // Class of Java array pointers class TypeAryPtr : public TypeOopPtr { ! TypeAryPtr( PTR ptr, ciObject* o, const TypeAry *ary, ciKlass* k, bool xk, Offset offset, Offset field_offset, int instance_id, bool is_autobox_cache, const TypePtr* speculative, int inline_depth) ! : TypeOopPtr(AryPtr,ptr,k,xk,o,offset, instance_id, speculative, inline_depth), _ary(ary), _is_autobox_cache(is_autobox_cache), _field_offset(field_offset) { #ifdef ASSERT --- 1172,1185 ---- }; //------------------------------TypeAryPtr------------------------------------- // Class of Java array pointers class TypeAryPtr : public TypeOopPtr { ! TypeAryPtr(PTR ptr, ciObject* o, const TypeAry *ary, ciKlass* k, bool xk, Offset offset, Offset field_offset, int instance_id, bool is_autobox_cache, const TypePtr* speculative, int inline_depth) ! : TypeOopPtr(AryPtr, ptr, k, xk, o, offset, field_offset, instance_id, speculative, inline_depth), _ary(ary), _is_autobox_cache(is_autobox_cache), _field_offset(field_offset) { #ifdef ASSERT
*** 1201,1220 **** } virtual bool eq( const Type *t ) const; virtual int hash() const; // Type specific hashing const TypeAry *_ary; // Array we point into const bool _is_autobox_cache; ! Offset meet_field_offset(int offset) const; Offset dual_field_offset() const; ciKlass* compute_klass(DEBUG_ONLY(bool verify = false)) const; public: - // For flattened value type arrays, each field of the value type in - // the array has its own memory slice so we need to keep track of - // which field is accessed - const Offset _field_offset; // Accessors ciKlass* klass() const; const TypeAry* ary() const { return _ary; } const Type* elem() const { return _ary->_elem; } const TypeInt* size() const { return _ary->_size; } --- 1201,1220 ---- } virtual bool eq( const Type *t ) const; virtual int hash() const; // Type specific hashing const TypeAry *_ary; // Array we point into const bool _is_autobox_cache; ! // For flattened value type arrays, each field of the value type in ! // the array has its own memory slice so we need to keep track of ! // which field is accessed ! const Offset _field_offset; ! Offset meet_field_offset(const Type::Offset offset) const; Offset dual_field_offset() const; ciKlass* compute_klass(DEBUG_ONLY(bool verify = false)) const; public: // Accessors ciKlass* klass() const; const TypeAry* ary() const { return _ary; } const Type* elem() const { return _ary->_elem; } const TypeInt* size() const { return _ary->_size; }
*** 1259,1269 **** const TypeAryPtr* cast_to_stable(bool stable, int stable_dimension = 1) const; int stable_dimension() const; const TypeAryPtr* cast_to_autobox_cache(bool cache) const; ! const int field_offset() const { return _field_offset.get(); } const TypeAryPtr* with_field_offset(int offset) const; const TypePtr* with_field_offset_and_offset(intptr_t offset) const; // Convenience common pre-built types. static const TypeAryPtr *RANGE; --- 1259,1269 ---- const TypeAryPtr* cast_to_stable(bool stable, int stable_dimension = 1) const; int stable_dimension() const; const TypeAryPtr* cast_to_autobox_cache(bool cache) const; ! const Offset field_offset() const { return _field_offset; } const TypeAryPtr* with_field_offset(int offset) const; const TypePtr* with_field_offset_and_offset(intptr_t offset) const; // Convenience common pre-built types. static const TypeAryPtr *RANGE;
*** 1294,1304 **** //------------------------------TypeValueTypePtr------------------------------------- // Class of value type pointers class TypeValueTypePtr : public TypeOopPtr { TypeValueTypePtr(const TypeValueType* vt, PTR ptr, ciObject* o, Offset offset, int instance_id, const TypePtr* speculative, int inline_depth) ! : TypeOopPtr(ValueTypePtr, ptr, vt->value_klass(), true, o, offset, instance_id, speculative, inline_depth) { _vt = vt; } const TypeValueType* _vt; // Value type we point to --- 1294,1304 ---- //------------------------------TypeValueTypePtr------------------------------------- // Class of value type pointers class TypeValueTypePtr : public TypeOopPtr { TypeValueTypePtr(const TypeValueType* vt, PTR ptr, ciObject* o, Offset offset, int instance_id, const TypePtr* speculative, int inline_depth) ! : TypeOopPtr(ValueTypePtr, ptr, vt->value_klass(), true, o, offset, Offset::bottom, instance_id, speculative, inline_depth) { _vt = vt; } const TypeValueType* _vt; // Value type we point to
< prev index next >