src/hotspot/share/code/compiledMethod.hpp
changeset 52857 7e268f863ff0
parent 52781 436097b038a1
child 52882 8b8935b5cfd4
equal deleted inserted replaced
52856:5f3b9b633731 52857:7e268f863ff0
   350 
   350 
   351   static address get_deopt_original_pc(const frame* fr);
   351   static address get_deopt_original_pc(const frame* fr);
   352 
   352 
   353   // Inline cache support for class unloading and nmethod unloading
   353   // Inline cache support for class unloading and nmethod unloading
   354  private:
   354  private:
   355   void cleanup_inline_caches_impl(bool unloading_occurred, bool clean_all);
   355   bool cleanup_inline_caches_impl(bool unloading_occurred, bool clean_all);
       
   356 
   356  public:
   357  public:
   357   void cleanup_inline_caches(bool clean_all) {
   358   // Serial version used by sweeper and whitebox test
   358     // Serial version used by sweeper and whitebox test
   359   void cleanup_inline_caches(bool clean_all);
   359     cleanup_inline_caches_impl(false, clean_all);
       
   360   }
       
   361 
   360 
   362   virtual void clear_inline_caches();
   361   virtual void clear_inline_caches();
   363   void clear_ic_stubs();
   362   void clear_ic_stubs();
   364 
   363 
   365   // Verify and count cached icholder relocations.
   364   // Verify and count cached icholder relocations.
   388   // GC support
   387   // GC support
   389  protected:
   388  protected:
   390   address oops_reloc_begin() const;
   389   address oops_reloc_begin() const;
   391 
   390 
   392  private:
   391  private:
   393   void static clean_ic_if_metadata_is_dead(CompiledIC *ic);
   392   bool static clean_ic_if_metadata_is_dead(CompiledIC *ic);
   394 
   393 
   395   void clean_ic_stubs();
   394   void clean_ic_stubs();
   396 
   395 
   397  public:
   396  public:
   398   // GC unloading support
   397   // GC unloading support
   399   // Cleans unloaded klasses and unloaded nmethods in inline caches
   398   // Cleans unloaded klasses and unloaded nmethods in inline caches
   400 
   399 
   401   virtual bool is_unloading() = 0;
   400   virtual bool is_unloading() = 0;
   402 
   401 
   403   void unload_nmethod_caches(bool class_unloading_occurred);
   402   bool unload_nmethod_caches(bool class_unloading_occurred);
   404   virtual void do_unloading(bool unloading_occurred) { }
   403   virtual void do_unloading(bool unloading_occurred) { }
   405 
   404 
   406 private:
   405 private:
   407   PcDesc* find_pc_desc(address pc, bool approximate) {
   406   PcDesc* find_pc_desc(address pc, bool approximate) {
   408     return _pc_desc_container.find_pc_desc(pc, approximate, PcDescSearch(code_begin(), scopes_pcs_begin(), scopes_pcs_end()));
   407     return _pc_desc_container.find_pc_desc(pc, approximate, PcDescSearch(code_begin(), scopes_pcs_begin(), scopes_pcs_end()));