Mercurial > hg > graal-jvmci-8
diff src/share/vm/opto/c2compiler.cpp @ 23848:3e1cd663c2d3
8055530: assert(_exits.control()->is_top() || !_gvn.type(ret_phi)->empty()) failed: return value must be well defined
Summary: concurrent class loading causes return phi to become top
Reviewed-by: kvn
author | shshahma |
---|---|
date | Fri, 15 Apr 2016 12:02:37 +0530 |
parents | ddce0b7cee93 |
children | f13e777eb255 |
line wrap: on
line diff
--- a/src/share/vm/opto/c2compiler.cpp Thu Apr 21 13:17:25 2016 +0200 +++ b/src/share/vm/opto/c2compiler.cpp Fri Apr 15 12:02:37 2016 +0530 @@ -49,6 +49,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 @@ -115,6 +118,10 @@ // Check result and retry if appropriate. if (C.failure_reason() != NULL) { + if (C.failure_reason_is(retry_class_loading_during_parsing())) { + env->record_failure(C.failure_reason()); + continue; // retry + } if (C.failure_reason_is(retry_no_subsuming_loads())) { assert(subsume_loads, "must make progress"); subsume_loads = false;