hotspot/src/share/vm/opto/compile.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File hotspot-comp Cdiff hotspot/src/share/vm/opto/compile.hpp

hotspot/src/share/vm/opto/compile.hpp

Print this page
rev 4967 : imported patch webrev.02

*** 70,79 **** --- 70,80 ---- class relocInfo; class Scope; class StartNode; class SafePointNode; class JVMState; + class Type; class TypeData; class TypePtr; class TypeOopPtr; class TypeFunc; class Unique_Node_List;
*** 117,145 **** friend class Compile; int _index; // unique index, used with MergeMemNode const TypePtr* _adr_type; // normalized address type ciField* _field; // relevant instance field, or null if none bool _is_rewritable; // false if the memory is write-once only int _general_index; // if this is type is an instance, the general // type that this is an instance of void Init(int i, const TypePtr* at); public: int index() const { return _index; } const TypePtr* adr_type() const { return _adr_type; } ciField* field() const { return _field; } bool is_rewritable() const { return _is_rewritable; } bool is_volatile() const { return (_field ? _field->is_volatile() : false); } int general_index() const { return (_general_index != 0) ? _general_index : _index; } void set_rewritable(bool z) { _is_rewritable = z; } void set_field(ciField* f) { assert(!_field,""); _field = f; ! if (f->is_final()) _is_rewritable = false; } void print_on(outputStream* st) PRODUCT_RETURN; }; --- 118,155 ---- friend class Compile; int _index; // unique index, used with MergeMemNode const TypePtr* _adr_type; // normalized address type ciField* _field; // relevant instance field, or null if none + const Type* _element; // relevant array element type, or null if none bool _is_rewritable; // false if the memory is write-once only int _general_index; // if this is type is an instance, the general // type that this is an instance of void Init(int i, const TypePtr* at); public: int index() const { return _index; } const TypePtr* adr_type() const { return _adr_type; } ciField* field() const { return _field; } + const Type* element() const { return _element; } bool is_rewritable() const { return _is_rewritable; } bool is_volatile() const { return (_field ? _field->is_volatile() : false); } int general_index() const { return (_general_index != 0) ? _general_index : _index; } void set_rewritable(bool z) { _is_rewritable = z; } void set_field(ciField* f) { assert(!_field,""); _field = f; ! if (f->is_final() || f->is_stable()) { ! // In the case of @Stable, multiple writes are possible but may be assumed to be no-ops. ! _is_rewritable = false; ! } ! } ! void set_element(const Type* e) { ! assert(_element == NULL, ""); ! _element = e; } void print_on(outputStream* st) PRODUCT_RETURN; };
hotspot/src/share/vm/opto/compile.hpp
Index Unified diffs Context diffs Sdiffs Patch New Old Previous File Next File