8220512: Deoptimize redefinition functions that have dirty ICs

Walk ICs to determine whether nmethods are dependent on redefined classes.

Reviewed-by: sspitsyn, eosterlund
This commit is contained in:
Coleen Phillimore 2019-03-15 16:00:18 -04:00
parent f0b707b94b
commit 5c5089b0a2
23 changed files with 121 additions and 69 deletions

View file

@ -2960,7 +2960,7 @@ void JavaThread::nmethods_do(CodeBlobClosure* cf) {
}
}
void JavaThread::metadata_do(void f(Metadata*)) {
void JavaThread::metadata_do(MetadataClosure* f) {
if (has_last_Java_frame()) {
// Traverse the execution stack to call f() on the methods in the stack
for (StackFrameStream fst(this); !fst.is_done(); fst.next()) {
@ -4574,7 +4574,7 @@ void Threads::nmethods_do(CodeBlobClosure* cf) {
}
}
void Threads::metadata_do(void f(Metadata*)) {
void Threads::metadata_do(MetadataClosure* f) {
ALL_JAVA_THREADS(p) {
p->metadata_do(f);
}