OpenJDK / jdk / jdk12
changeset 24324:e18584aa83e2
8041959: Skip replay parsing errors with ReplayIgnoreInitErrors
Summary: Allow replay compilation with replay file parsing error.
Reviewed-by: twisti, iveresov
author | kvn |
---|---|
date | Tue, 29 Apr 2014 10:29:56 -0700 |
parents | f84b15cd9e1a |
children | 7a1b3799b906 |
files | hotspot/src/share/vm/ci/ciReplay.cpp hotspot/src/share/vm/runtime/simpleThresholdPolicy.cpp |
diffstat | 2 files changed, 16 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/hotspot/src/share/vm/ci/ciReplay.cpp Tue Apr 29 07:14:46 2014 +0000 +++ b/hotspot/src/share/vm/ci/ciReplay.cpp Tue Apr 29 10:29:56 2014 -0700 @@ -376,11 +376,15 @@ int c = getc(_stream); while(c != EOF) { c = get_line(c); - process_command(CHECK); + process_command(THREAD); if (had_error()) { tty->print_cr("Error while parsing line %d: %s\n", line_no, _error_message); - tty->print_cr("%s", _buffer); - return; + if (ReplayIgnoreInitErrors) { + CLEAR_PENDING_EXCEPTION; + _error_message = NULL; + } else { + return; + } } line_no++; } @@ -565,10 +569,14 @@ void process_ciMethodData(TRAPS) { Method* method = parse_method(CHECK); if (had_error()) return; - /* jsut copied from Method, to build interpret data*/ + /* just copied from Method, to build interpret data*/ if (InstanceRefKlass::owns_pending_list_lock((JavaThread*)THREAD)) { return; } + // To be properly initialized, some profiling in the MDO needs the + // method to be rewritten (number of arguments at a call for + // instance) + method->method_holder()->link_class(CHECK); // methodOopDesc::build_interpreter_method_data(method, CHECK); { // Grab a lock here to prevent multiple
--- a/hotspot/src/share/vm/runtime/simpleThresholdPolicy.cpp Tue Apr 29 07:14:46 2014 +0000 +++ b/hotspot/src/share/vm/runtime/simpleThresholdPolicy.cpp Tue Apr 29 10:29:56 2014 -0700 @@ -192,6 +192,10 @@ thread->is_interp_only_mode()) { return NULL; } + if (CompileTheWorld || ReplayCompiles) { + // Don't trigger other compiles in testing mode + return NULL; + } nmethod *osr_nm = NULL; handle_counter_overflow(method());