Mercurial > hg > truffle
comparison src/share/vm/code/codeCache.hpp @ 20278:2c6ef90f030a
8049421: G1 Class Unloading after completing a concurrent mark cycle
Reviewed-by: tschatzl, ehelin, brutisso, coleenp, roland, iveresov
Contributed-by: stefan.karlsson@oracle.com, mikael.gerdin@oracle.com
author | stefank |
---|---|
date | Mon, 07 Jul 2014 10:12:40 +0200 |
parents | 510fbd28919c |
children | 7848fc12602b |
comparison
equal
deleted
inserted
replaced
20277:882004b9e7e1 | 20278:2c6ef90f030a |
---|---|
132 static void verify_oops(); | 132 static void verify_oops(); |
133 // If "unloading_occurred" is true, then unloads (i.e., breaks root links | 133 // If "unloading_occurred" is true, then unloads (i.e., breaks root links |
134 // to) any unmarked codeBlobs in the cache. Sets "marked_for_unloading" | 134 // to) any unmarked codeBlobs in the cache. Sets "marked_for_unloading" |
135 // to "true" iff some code got unloaded. | 135 // to "true" iff some code got unloaded. |
136 static void do_unloading(BoolObjectClosure* is_alive, bool unloading_occurred); | 136 static void do_unloading(BoolObjectClosure* is_alive, bool unloading_occurred); |
137 static void oops_do(OopClosure* f) { | |
138 CodeBlobToOopClosure oopc(f, /*do_marking=*/ false); | |
139 blobs_do(&oopc); | |
140 } | |
141 static void asserted_non_scavengable_nmethods_do(CodeBlobClosure* f = NULL) PRODUCT_RETURN; | 137 static void asserted_non_scavengable_nmethods_do(CodeBlobClosure* f = NULL) PRODUCT_RETURN; |
142 static void scavenge_root_nmethods_do(CodeBlobClosure* f); | 138 static void scavenge_root_nmethods_do(CodeBlobClosure* f); |
143 | 139 |
144 static nmethod* scavenge_root_nmethods() { return _scavenge_root_nmethods; } | 140 static nmethod* scavenge_root_nmethods() { return _scavenge_root_nmethods; } |
145 static void set_scavenge_root_nmethods(nmethod* nm) { _scavenge_root_nmethods = nm; } | 141 static void set_scavenge_root_nmethods(nmethod* nm) { _scavenge_root_nmethods = nm; } |
170 | 166 |
171 static bool needs_cache_clean() { return _needs_cache_clean; } | 167 static bool needs_cache_clean() { return _needs_cache_clean; } |
172 static void set_needs_cache_clean(bool v) { _needs_cache_clean = v; } | 168 static void set_needs_cache_clean(bool v) { _needs_cache_clean = v; } |
173 static void clear_inline_caches(); // clear all inline caches | 169 static void clear_inline_caches(); // clear all inline caches |
174 | 170 |
171 static void verify_clean_inline_caches(); | |
172 static void verify_icholder_relocations(); | |
173 | |
175 // Deoptimization | 174 // Deoptimization |
176 static int mark_for_deoptimization(DepChange& changes); | 175 static int mark_for_deoptimization(DepChange& changes); |
177 #ifdef HOTSWAP | 176 #ifdef HOTSWAP |
178 static int mark_for_evol_deoptimization(instanceKlassHandle dependee); | 177 static int mark_for_evol_deoptimization(instanceKlassHandle dependee); |
179 #endif // HOTSWAP | 178 #endif // HOTSWAP |