hotspot/src/share/vm/opto/callnode.hpp
changeset 32084 7743e6943cdf
parent 31233 7033a9f3e2f1
child 33077 55f205e96044
equal deleted inserted replaced
32083:1796911eb140 32084:7743e6943cdf
    82   virtual const RegMask &in_RegMask(uint) const;
    82   virtual const RegMask &in_RegMask(uint) const;
    83   virtual Node *match( const ProjNode *proj, const Matcher *m );
    83   virtual Node *match( const ProjNode *proj, const Matcher *m );
    84   virtual uint ideal_reg() const { return 0; }
    84   virtual uint ideal_reg() const { return 0; }
    85 #ifndef PRODUCT
    85 #ifndef PRODUCT
    86   virtual void  dump_spec(outputStream *st) const;
    86   virtual void  dump_spec(outputStream *st) const;
       
    87   virtual void  dump_compact_spec(outputStream *st) const;
    87 #endif
    88 #endif
    88 };
    89 };
    89 
    90 
    90 //------------------------------StartOSRNode-----------------------------------
    91 //------------------------------StartOSRNode-----------------------------------
    91 // The method start node for on stack replacement code
    92 // The method start node for on stack replacement code
   108   virtual int Opcode() const;
   109   virtual int Opcode() const;
   109   virtual bool  is_CFG() const { return (_con == TypeFunc::Control); }
   110   virtual bool  is_CFG() const { return (_con == TypeFunc::Control); }
   110   virtual uint ideal_reg() const;
   111   virtual uint ideal_reg() const;
   111 #ifndef PRODUCT
   112 #ifndef PRODUCT
   112   virtual void dump_spec(outputStream *st) const;
   113   virtual void dump_spec(outputStream *st) const;
       
   114   virtual void dump_compact_spec(outputStream *st) const;
       
   115   virtual void related(GrowableArray<Node*> *in_rel, GrowableArray<Node*> *out_rel, bool compact) const;
   113 #endif
   116 #endif
   114 };
   117 };
   115 
   118 
   116 
   119 
   117 //------------------------------ReturnNode-------------------------------------
   120 //------------------------------ReturnNode-------------------------------------
   474 
   477 
   475   static  bool           needs_polling_address_input();
   478   static  bool           needs_polling_address_input();
   476 
   479 
   477 #ifndef PRODUCT
   480 #ifndef PRODUCT
   478   virtual void           dump_spec(outputStream *st) const;
   481   virtual void           dump_spec(outputStream *st) const;
       
   482   virtual void           related(GrowableArray<Node*> *in_rel, GrowableArray<Node*> *out_rel, bool compact) const;
   479 #endif
   483 #endif
   480 };
   484 };
   481 
   485 
   482 //------------------------------SafePointScalarObjectNode----------------------
   486 //------------------------------SafePointScalarObjectNode----------------------
   483 // A SafePointScalarObjectNode represents the state of a scalarized object
   487 // A SafePointScalarObjectNode represents the state of a scalarized object
   673   void  set_method_handle_invoke(bool f)  { _method_handle_invoke = f; }
   677   void  set_method_handle_invoke(bool f)  { _method_handle_invoke = f; }
   674   bool  is_method_handle_invoke() const   { return _method_handle_invoke; }
   678   bool  is_method_handle_invoke() const   { return _method_handle_invoke; }
   675 
   679 
   676 #ifndef PRODUCT
   680 #ifndef PRODUCT
   677   virtual void  dump_spec(outputStream *st) const;
   681   virtual void  dump_spec(outputStream *st) const;
       
   682   virtual void  dump_compact_spec(outputStream *st) const;
   678 #endif
   683 #endif
   679 };
   684 };
   680 
   685 
   681 //------------------------------CallStaticJavaNode-----------------------------
   686 //------------------------------CallStaticJavaNode-----------------------------
   682 // Make a direct subroutine call using Java calling convention (for static
   687 // Make a direct subroutine call using Java calling convention (for static
   728   }
   733   }
   729 
   734 
   730   virtual int         Opcode() const;
   735   virtual int         Opcode() const;
   731 #ifndef PRODUCT
   736 #ifndef PRODUCT
   732   virtual void        dump_spec(outputStream *st) const;
   737   virtual void        dump_spec(outputStream *st) const;
       
   738   virtual void        dump_compact_spec(outputStream *st) const;
   733 #endif
   739 #endif
   734 };
   740 };
   735 
   741 
   736 //------------------------------CallDynamicJavaNode----------------------------
   742 //------------------------------CallDynamicJavaNode----------------------------
   737 // Make a dispatched call using Java calling convention.
   743 // Make a dispatched call using Java calling convention.
   949     Coarsened,    // Lock was coarsened
   955     Coarsened,    // Lock was coarsened
   950     Nested        // Nested lock
   956     Nested        // Nested lock
   951   } _kind;
   957   } _kind;
   952 #ifndef PRODUCT
   958 #ifndef PRODUCT
   953   NamedCounter* _counter;
   959   NamedCounter* _counter;
       
   960   static const char* _kind_names[Nested+1];
   954 #endif
   961 #endif
   955 
   962 
   956 protected:
   963 protected:
   957   // helper functions for lock elimination
   964   // helper functions for lock elimination
   958   //
   965   //
  1003   virtual bool may_modify(const TypeOopPtr *t_oop, PhaseTransform *phase){ return false;}
  1010   virtual bool may_modify(const TypeOopPtr *t_oop, PhaseTransform *phase){ return false;}
  1004 
  1011 
  1005 #ifndef PRODUCT
  1012 #ifndef PRODUCT
  1006   void create_lock_counter(JVMState* s);
  1013   void create_lock_counter(JVMState* s);
  1007   NamedCounter* counter() const { return _counter; }
  1014   NamedCounter* counter() const { return _counter; }
       
  1015   virtual void dump_spec(outputStream* st) const;
       
  1016   virtual void dump_compact_spec(outputStream* st) const;
       
  1017   virtual void related(GrowableArray<Node*> *in_rel, GrowableArray<Node*> *out_rel, bool compact) const;
  1008 #endif
  1018 #endif
  1009 };
  1019 };
  1010 
  1020 
  1011 //------------------------------Lock---------------------------------------
  1021 //------------------------------Lock---------------------------------------
  1012 // High-level lock operation
  1022 // High-level lock operation