-
Type:
Enhancement
-
Resolution: Unresolved
-
Priority:
P4
-
Affects Version/s: 26
-
Component/s: hotspot
When working on JDK-8372917, I noticed that -XX:RepeatCompilation does not repeat the compilation if there was an (expected) bailout. As a result, it did not help reproducing this intermittent issue (non expected bailouts will already assert, expected ones as well with -XX:+AbortVMOnCompilationFailure).
Repeat compilation should continue after such expected bailouts. Here's a quick workaround:
diff --git a/src/hotspot/share/compiler/compileBroker.cpp b/src/hotspot/share/compiler/compileBroker.cpp
index c9c042f3aca..0ec570fa404 100644
--- a/src/hotspot/share/compiler/compileBroker.cpp
+++ b/src/hotspot/share/compiler/compileBroker.cpp
@@ -2350,7 +2350,8 @@ void CompileBroker::invoke_compiler_on_method(CompileTask* task) {
ResourceMark rm(thread);
task->print_ul("NO CODE INSTALLED");
thread->timeout()->reset();
- comp->compile_method(&ci_env, target, osr_bci, false, directive);
+ ciEnv ci_env_dupl(task);
+ comp->compile_method(&ci_env_dupl, target, osr_bci, false, directive);
repeat_compilation_count--;
}
}
Repeat compilation should continue after such expected bailouts. Here's a quick workaround:
diff --git a/src/hotspot/share/compiler/compileBroker.cpp b/src/hotspot/share/compiler/compileBroker.cpp
index c9c042f3aca..0ec570fa404 100644
--- a/src/hotspot/share/compiler/compileBroker.cpp
+++ b/src/hotspot/share/compiler/compileBroker.cpp
@@ -2350,7 +2350,8 @@ void CompileBroker::invoke_compiler_on_method(CompileTask* task) {
ResourceMark rm(thread);
task->print_ul("NO CODE INSTALLED");
thread->timeout()->reset();
- comp->compile_method(&ci_env, target, osr_bci, false, directive);
+ ciEnv ci_env_dupl(task);
+ comp->compile_method(&ci_env_dupl, target, osr_bci, false, directive);
repeat_compilation_count--;
}
}
- relates to
-
JDK-8248398 Add diagnostic RepeatCompilation utility
-
- Resolved
-