changeset 10840:1dde8affa7e6

8212070: Introduce diagnostic flag to abort VM on failed JIT compilation Reviewed-by: mikael, thartmann
author shade
date Mon, 19 Nov 2018 11:51:27 +0100
parents bc185d95c9f5
children 3c4577d95636
files src/share/vm/compiler/compileBroker.cpp src/share/vm/runtime/globals.hpp
diffstat 2 files changed, 12 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/compiler/compileBroker.cpp	Tue Sep 22 08:33:42 2020 +0000
+++ b/src/share/vm/compiler/compileBroker.cpp	Mon Nov 19 11:51:27 2018 +0100
@@ -2042,6 +2042,15 @@
         event.set_failureMessage(failure_reason);
         event.commit();
       }
+
+      if (AbortVMOnCompilationFailure) {
+        if (compilable == ciEnv::MethodCompilable_not_at_tier) {
+          fatal(err_msg("Not compilable at tier %d: %s", task_level, failure_reason));
+        }
+        if (compilable == ciEnv::MethodCompilable_never) {
+          fatal(err_msg("Never compilable: %s", failure_reason));
+        }
+      }
     } else {
       task->mark_success();
       task->set_num_inlined_bytecodes(ci_env.num_inlined_bytecodes());
--- a/src/share/vm/runtime/globals.hpp	Tue Sep 22 08:33:42 2020 +0000
+++ b/src/share/vm/runtime/globals.hpp	Mon Nov 19 11:51:27 2018 +0100
@@ -3484,6 +3484,9 @@
   notproduct(bool, CIObjectFactoryVerify, false,                            \
           "enable potentially expensive verification in ciObjectFactory")   \
                                                                             \
+  diagnostic(bool, AbortVMOnCompilationFailure, false,                      \
+          "Abort VM when method had failed to compile.")                    \
+                                                                            \
   /* Priorities */                                                          \
   product_pd(bool, UseThreadPriorities,  "Use native thread priorities")    \
                                                                             \