55 static int _number_of_adapters; |
55 static int _number_of_adapters; |
56 static int _number_of_nmethods; |
56 static int _number_of_nmethods; |
57 static int _number_of_nmethods_with_dependencies; |
57 static int _number_of_nmethods_with_dependencies; |
58 static bool _needs_cache_clean; |
58 static bool _needs_cache_clean; |
59 static nmethod* _scavenge_root_nmethods; // linked via nm->scavenge_root_link() |
59 static nmethod* _scavenge_root_nmethods; // linked via nm->scavenge_root_link() |
60 static nmethod* _saved_nmethods; // Linked list of speculatively disconnected nmethods. |
|
61 |
60 |
62 static void verify_if_often() PRODUCT_RETURN; |
61 static void verify_if_often() PRODUCT_RETURN; |
63 |
62 |
64 static void mark_scavenge_root_nmethods() PRODUCT_RETURN; |
63 static void mark_scavenge_root_nmethods() PRODUCT_RETURN; |
65 static void verify_perm_nmethods(CodeBlobClosure* f_or_null) PRODUCT_RETURN; |
64 static void verify_perm_nmethods(CodeBlobClosure* f_or_null) PRODUCT_RETURN; |
165 static address first_address(); // first address used for CodeBlobs |
164 static address first_address(); // first address used for CodeBlobs |
166 static address last_address(); // last address used for CodeBlobs |
165 static address last_address(); // last address used for CodeBlobs |
167 static size_t capacity() { return _heap->capacity(); } |
166 static size_t capacity() { return _heap->capacity(); } |
168 static size_t max_capacity() { return _heap->max_capacity(); } |
167 static size_t max_capacity() { return _heap->max_capacity(); } |
169 static size_t unallocated_capacity() { return _heap->unallocated_capacity(); } |
168 static size_t unallocated_capacity() { return _heap->unallocated_capacity(); } |
170 static bool needs_flushing() { return unallocated_capacity() < CodeCacheFlushingMinimumFreeSpace; } |
|
171 static double reverse_free_ratio(); |
169 static double reverse_free_ratio(); |
172 |
170 |
173 static bool needs_cache_clean() { return _needs_cache_clean; } |
171 static bool needs_cache_clean() { return _needs_cache_clean; } |
174 static void set_needs_cache_clean(bool v) { _needs_cache_clean = v; } |
172 static void set_needs_cache_clean(bool v) { _needs_cache_clean = v; } |
175 static void clear_inline_caches(); // clear all inline caches |
173 static void clear_inline_caches(); // clear all inline caches |
176 |
|
177 static nmethod* reanimate_saved_code(Method* m); |
|
178 static void remove_saved_code(nmethod* nm); |
|
179 static void speculatively_disconnect(nmethod* nm); |
|
180 |
174 |
181 // Deoptimization |
175 // Deoptimization |
182 static int mark_for_deoptimization(DepChange& changes); |
176 static int mark_for_deoptimization(DepChange& changes); |
183 #ifdef HOTSWAP |
177 #ifdef HOTSWAP |
184 static int mark_for_evol_deoptimization(instanceKlassHandle dependee); |
178 static int mark_for_evol_deoptimization(instanceKlassHandle dependee); |