--- a/hotspot/src/share/vm/opto/c2compiler.cpp Tue Dec 30 11:09:42 2014 +0300
+++ b/hotspot/src/share/vm/opto/c2compiler.cpp Mon Dec 22 11:21:20 2014 +0100
@@ -39,6 +39,9 @@
const char* C2Compiler::retry_no_escape_analysis() {
return "retry without escape analysis";
}
+const char* C2Compiler::retry_class_loading_during_parsing() {
+ return "retry class loading during parsing";
+}
bool C2Compiler::init_c2_runtime() {
// Check assumptions used while running ADLC
@@ -104,6 +107,10 @@
// Check result and retry if appropriate.
if (C.failure_reason() != NULL) {
+ if (C.failure_reason_is(retry_class_loading_during_parsing())) {
+ env->report_failure(C.failure_reason());
+ continue; // retry
+ }
if (C.failure_reason_is(retry_no_subsuming_loads())) {
assert(subsume_loads, "must make progress");
subsume_loads = false;