hotspot/src/share/vm/code/codeCache.hpp
changeset 4750 71fd601907dc
parent 3908 24b55ad4c228
child 5533 e8d9ff82ec62
equal deleted inserted replaced
4749:f26b30116e3a 4750:71fd601907dc
    44   static CodeHeap * _heap;
    44   static CodeHeap * _heap;
    45   static int _number_of_blobs;
    45   static int _number_of_blobs;
    46   static int _number_of_nmethods_with_dependencies;
    46   static int _number_of_nmethods_with_dependencies;
    47   static bool _needs_cache_clean;
    47   static bool _needs_cache_clean;
    48   static nmethod* _scavenge_root_nmethods;  // linked via nm->scavenge_root_link()
    48   static nmethod* _scavenge_root_nmethods;  // linked via nm->scavenge_root_link()
       
    49   static nmethod* _saved_nmethods;          // linked via nm->saved_nmethod_look()
    49 
    50 
    50   static void verify_if_often() PRODUCT_RETURN;
    51   static void verify_if_often() PRODUCT_RETURN;
    51 
    52 
    52   static void mark_scavenge_root_nmethods() PRODUCT_RETURN;
    53   static void mark_scavenge_root_nmethods() PRODUCT_RETURN;
    53   static void verify_perm_nmethods(CodeBlobClosure* f_or_null) PRODUCT_RETURN;
    54   static void verify_perm_nmethods(CodeBlobClosure* f_or_null) PRODUCT_RETURN;
   139   static address first_address();                // first address used for CodeBlobs
   140   static address first_address();                // first address used for CodeBlobs
   140   static address last_address();                 // last  address used for CodeBlobs
   141   static address last_address();                 // last  address used for CodeBlobs
   141   static size_t  capacity()                      { return _heap->capacity(); }
   142   static size_t  capacity()                      { return _heap->capacity(); }
   142   static size_t  max_capacity()                  { return _heap->max_capacity(); }
   143   static size_t  max_capacity()                  { return _heap->max_capacity(); }
   143   static size_t  unallocated_capacity()          { return _heap->unallocated_capacity(); }
   144   static size_t  unallocated_capacity()          { return _heap->unallocated_capacity(); }
       
   145   static bool    needs_flushing()                { return unallocated_capacity() < CodeCacheFlushingMinimumFreeSpace; }
   144 
   146 
   145   static bool needs_cache_clean()                { return _needs_cache_clean; }
   147   static bool needs_cache_clean()                { return _needs_cache_clean; }
   146   static void set_needs_cache_clean(bool v)      { _needs_cache_clean = v;    }
   148   static void set_needs_cache_clean(bool v)      { _needs_cache_clean = v;    }
   147   static void clear_inline_caches();             // clear all inline caches
   149   static void clear_inline_caches();             // clear all inline caches
       
   150 
       
   151   static nmethod* find_and_remove_saved_code(methodOop m);
       
   152   static void remove_saved_code(nmethod* nm);
       
   153   static void speculatively_disconnect(nmethod* nm);
   148 
   154 
   149   // Deoptimization
   155   // Deoptimization
   150   static int  mark_for_deoptimization(DepChange& changes);
   156   static int  mark_for_deoptimization(DepChange& changes);
   151 #ifdef HOTSWAP
   157 #ifdef HOTSWAP
   152   static int  mark_for_evol_deoptimization(instanceKlassHandle dependee);
   158   static int  mark_for_evol_deoptimization(instanceKlassHandle dependee);