1 /* |
1 /* |
2 * Copyright (c) 1997, 2013, Oracle and/or its affiliates. All rights reserved. |
2 * Copyright (c) 1997, 2015, Oracle and/or its affiliates. All rights reserved. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER. |
4 * |
4 * |
5 * This code is free software; you can redistribute it and/or modify it |
5 * This code is free software; you can redistribute it and/or modify it |
6 * under the terms of the GNU General Public License version 2 only, as |
6 * under the terms of the GNU General Public License version 2 only, as |
7 * published by the Free Software Foundation. |
7 * published by the Free Software Foundation. |
207 |
207 |
208 static void verify_clean_inline_caches(); |
208 static void verify_clean_inline_caches(); |
209 static void verify_icholder_relocations(); |
209 static void verify_icholder_relocations(); |
210 |
210 |
211 // Deoptimization |
211 // Deoptimization |
|
212 private: |
212 static int mark_for_deoptimization(DepChange& changes); |
213 static int mark_for_deoptimization(DepChange& changes); |
213 #ifdef HOTSWAP |
214 #ifdef HOTSWAP |
214 static int mark_for_evol_deoptimization(instanceKlassHandle dependee); |
215 static int mark_for_evol_deoptimization(instanceKlassHandle dependee); |
215 #endif // HOTSWAP |
216 #endif // HOTSWAP |
216 |
217 |
|
218 public: |
217 static void mark_all_nmethods_for_deoptimization(); |
219 static void mark_all_nmethods_for_deoptimization(); |
218 static int mark_for_deoptimization(Method* dependee); |
220 static int mark_for_deoptimization(Method* dependee); |
219 static void make_marked_nmethods_zombies(); |
221 static void make_marked_nmethods_zombies(); |
220 static void make_marked_nmethods_not_entrant(); |
222 static void make_marked_nmethods_not_entrant(); |
|
223 |
|
224 // Flushing and deoptimization |
|
225 static void flush_dependents_on(instanceKlassHandle dependee); |
|
226 static void flush_dependents_on(Handle call_site, Handle method_handle); |
|
227 #ifdef HOTSWAP |
|
228 // Flushing and deoptimization in case of evolution |
|
229 static void flush_evol_dependents_on(instanceKlassHandle dependee); |
|
230 #endif // HOTSWAP |
|
231 // Support for fullspeed debugging |
|
232 static void flush_dependents_on_method(methodHandle dependee); |
221 |
233 |
222 // tells how many nmethods have dependencies |
234 // tells how many nmethods have dependencies |
223 static int number_of_nmethods_with_dependencies(); |
235 static int number_of_nmethods_with_dependencies(); |
224 |
236 |
225 static int get_codemem_full_count() { return _codemem_full_count; } |
237 static int get_codemem_full_count() { return _codemem_full_count; } |