< prev index next >

src/hotspot/share/code/compiledMethod.hpp

Print this page
rev 56205 : imported patch 8226705-v1
rev 56206 : [mq]: 8226705-v2


 228   virtual bool is_osr_method() const = 0;
 229   virtual int osr_entry_bci() const = 0;
 230   Method* method() const                          { return _method; }
 231   virtual void print_pcs() = 0;
 232   bool is_native_method() const { return _method != NULL && _method->is_native(); }
 233   bool is_java_method() const { return _method != NULL && !_method->is_native(); }
 234 
 235   // ScopeDesc retrieval operation
 236   PcDesc* pc_desc_at(address pc)   { return find_pc_desc(pc, false); }
 237   // pc_desc_near returns the first PcDesc at or after the given pc.
 238   PcDesc* pc_desc_near(address pc) { return find_pc_desc(pc, true); }
 239 
 240   // ScopeDesc for an instruction
 241   ScopeDesc* scope_desc_at(address pc);
 242   ScopeDesc* scope_desc_near(address pc);
 243 
 244   bool is_at_poll_return(address pc);
 245   bool is_at_poll_or_poll_return(address pc);
 246 
 247   bool  is_marked_for_deoptimization() const      { return _mark_for_deoptimization_status != not_marked; }
 248   void  mark_for_deoptimization(bool inc_recompile_counts = true) {
 249     _mark_for_deoptimization_status = (inc_recompile_counts ? deoptimize : deoptimize_noupdate);
 250   }
 251   bool update_recompile_counts() const {
 252     // Update recompile counts when either the update is explicitly requested (deoptimize)
 253     // or the nmethod is not marked for deoptimization at all (not_marked).
 254     // The latter happens during uncommon traps when deoptimized nmethod is made not entrant.
 255     return _mark_for_deoptimization_status != deoptimize_noupdate;
 256   }
 257 
 258   static bool nmethod_access_is_safe(nmethod* nm);
 259 
 260   // tells whether frames described by this nmethod can be deoptimized
 261   // note: native wrappers cannot be deoptimized.
 262   bool can_be_deoptimized() const { return is_java_method(); }
 263 
 264   virtual oop oop_at(int index) const = 0;
 265   virtual Metadata* metadata_at(int index) const = 0;
 266 
 267   address scopes_data_begin() const { return _scopes_data_begin; }
 268   virtual address scopes_data_end() const = 0;
 269   int scopes_data_size() const { return scopes_data_end() - scopes_data_begin(); }
 270 




 228   virtual bool is_osr_method() const = 0;
 229   virtual int osr_entry_bci() const = 0;
 230   Method* method() const                          { return _method; }
 231   virtual void print_pcs() = 0;
 232   bool is_native_method() const { return _method != NULL && _method->is_native(); }
 233   bool is_java_method() const { return _method != NULL && !_method->is_native(); }
 234 
 235   // ScopeDesc retrieval operation
 236   PcDesc* pc_desc_at(address pc)   { return find_pc_desc(pc, false); }
 237   // pc_desc_near returns the first PcDesc at or after the given pc.
 238   PcDesc* pc_desc_near(address pc) { return find_pc_desc(pc, true); }
 239 
 240   // ScopeDesc for an instruction
 241   ScopeDesc* scope_desc_at(address pc);
 242   ScopeDesc* scope_desc_near(address pc);
 243 
 244   bool is_at_poll_return(address pc);
 245   bool is_at_poll_or_poll_return(address pc);
 246 
 247   bool  is_marked_for_deoptimization() const { return _mark_for_deoptimization_status != not_marked; }
 248   void  mark_for_deoptimization(bool inc_recompile_counts = true);
 249 

 250   bool update_recompile_counts() const {
 251     // Update recompile counts when either the update is explicitly requested (deoptimize)
 252     // or the nmethod is not marked for deoptimization at all (not_marked).
 253     // The latter happens during uncommon traps when deoptimized nmethod is made not entrant.
 254     return _mark_for_deoptimization_status != deoptimize_noupdate;
 255   }
 256 
 257   static bool nmethod_access_is_safe(nmethod* nm);
 258 
 259   // tells whether frames described by this nmethod can be deoptimized
 260   // note: native wrappers cannot be deoptimized.
 261   bool can_be_deoptimized() const { return is_java_method(); }
 262 
 263   virtual oop oop_at(int index) const = 0;
 264   virtual Metadata* metadata_at(int index) const = 0;
 265 
 266   address scopes_data_begin() const { return _scopes_data_begin; }
 267   virtual address scopes_data_end() const = 0;
 268   int scopes_data_size() const { return scopes_data_end() - scopes_data_begin(); }
 269 


< prev index next >