src/share/vm/opto/callnode.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File 8012972 Cdiff src/share/vm/opto/callnode.hpp

src/share/vm/opto/callnode.hpp

Print this page

        

*** 447,464 **** //------------------------------SafePointScalarObjectNode---------------------- // A SafePointScalarObjectNode represents the state of a scalarized object // at a safepoint. class SafePointScalarObjectNode: public TypeNode { ! uint _first_index; // First input edge index of a SafePoint node where // states of the scalarized object fields are collected. uint _n_fields; // Number of non-static fields of the scalarized object. DEBUG_ONLY(AllocateNode* _alloc;) virtual uint hash() const ; // { return NO_HASH; } virtual uint cmp( const Node &n ) const; public: SafePointScalarObjectNode(const TypeOopPtr* tp, #ifdef ASSERT AllocateNode* alloc, #endif --- 447,467 ---- //------------------------------SafePointScalarObjectNode---------------------- // A SafePointScalarObjectNode represents the state of a scalarized object // at a safepoint. class SafePointScalarObjectNode: public TypeNode { ! uint _first_index; // First input edge relative index of a SafePoint node where // states of the scalarized object fields are collected. + // It is relative to the last (youngest) jvms->_scloff. uint _n_fields; // Number of non-static fields of the scalarized object. DEBUG_ONLY(AllocateNode* _alloc;) virtual uint hash() const ; // { return NO_HASH; } virtual uint cmp( const Node &n ) const; + uint first_index() const { return _first_index; } + public: SafePointScalarObjectNode(const TypeOopPtr* tp, #ifdef ASSERT AllocateNode* alloc, #endif
*** 467,477 **** virtual uint ideal_reg() const; virtual const RegMask &in_RegMask(uint) const; virtual const RegMask &out_RegMask() const; virtual uint match_edge(uint idx) const; ! uint first_index() const { return _first_index; } uint n_fields() const { return _n_fields; } #ifdef ASSERT AllocateNode* alloc() const { return _alloc; } #endif --- 470,483 ---- virtual uint ideal_reg() const; virtual const RegMask &in_RegMask(uint) const; virtual const RegMask &out_RegMask() const; virtual uint match_edge(uint idx) const; ! uint first_index(JVMState* jvms) const { ! assert(jvms != NULL, "missed JVMS"); ! return jvms->scloff() + _first_index; ! } uint n_fields() const { return _n_fields; } #ifdef ASSERT AllocateNode* alloc() const { return _alloc; } #endif
*** 483,493 **** // between the start index of the jvmstates of "new_call" and "s" is // "jvms_adj". Produce and return a SafePointScalarObjectNode that // corresponds appropriately to "this" in "new_call". Assumes that // "sosn_map" is a map, specific to the translation of "s" to "new_call", // mapping old SafePointScalarObjectNodes to new, to avoid multiple copies. ! SafePointScalarObjectNode* clone(int jvms_adj, Dict* sosn_map) const; #ifndef PRODUCT virtual void dump_spec(outputStream *st) const; #endif }; --- 489,499 ---- // between the start index of the jvmstates of "new_call" and "s" is // "jvms_adj". Produce and return a SafePointScalarObjectNode that // corresponds appropriately to "this" in "new_call". Assumes that // "sosn_map" is a map, specific to the translation of "s" to "new_call", // mapping old SafePointScalarObjectNodes to new, to avoid multiple copies. ! SafePointScalarObjectNode* clone(Dict* sosn_map) const; #ifndef PRODUCT virtual void dump_spec(outputStream *st) const; #endif };
src/share/vm/opto/callnode.hpp
Index Unified diffs Context diffs Sdiffs Wdiffs Patch New Old Previous File Next File