changeset 13642:10f943c778f6

Add code to trace uncollected speculations
author Gilles Duboscq <duboscq@ssw.jku.at>
date Thu, 12 Dec 2013 15:31:24 +0100
parents 5a9afbf72714
children 4463c520f475
files src/share/vm/graal/graalGlobals.hpp src/share/vm/runtime/deoptimization.cpp
diffstat 2 files changed, 8 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/vm/graal/graalGlobals.hpp	Thu Dec 12 15:13:02 2013 +0100
+++ b/src/share/vm/graal/graalGlobals.hpp	Thu Dec 12 15:31:24 2013 +0100
@@ -76,6 +76,9 @@
   notproduct(bool, GraalPrintSimpleStubs, false,                            \
           "Print simple Graal stubs")                                       \
                                                                             \
+  develop(bool, TraceUncollectedSpeculations, false,                        \
+          "Print message when a failed speculation was not collected")      \
+                                                                            \
 
 
 // Read default values for Graal globals
--- a/src/share/vm/runtime/deoptimization.cpp	Thu Dec 12 15:13:02 2013 +0100
+++ b/src/share/vm/runtime/deoptimization.cpp	Thu Dec 12 15:31:24 2013 +0100
@@ -1373,6 +1373,11 @@
     if (speculation != NULL) {
       oop speculation_log = nm->speculation_log();
       if (speculation_log != NULL) {
+        if (TraceUncollectedSpeculations) {
+          if (SpeculationLog::lastFailed(speculation_log) != NULL) {
+            tty->print_cr("A speculation that was not collected by the compiler is being overwritten");
+          }
+        }
         SpeculationLog::set_lastFailed(speculation_log, speculation);
       }
       thread->set_pending_failed_speculation(NULL);