RepeatCompilation does not repeat compilation after bailout

XMLWordPrintable

    • Type: Enhancement
    • Resolution: Unresolved
    • Priority: P4
    • tbd
    • 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--;
             }
           }

            Assignee:
            Unassigned
            Reporter:
            Tobias Hartmann
            Votes:
            0 Vote for this issue
            Watchers:
            1 Start watching this issue

              Created:
              Updated: