changeset 5126:43d5ae1051f7

added better debug output when an optimistic deoptimization is disabled fixed inconsistent newline characters in C++ file
author Christian Haeubl <christian.haeubl@oracle.com>
date Tue, 20 Mar 2012 16:15:27 -0700
parents 4a1894e1cfc7
children 7b2efb5ff2ea
files graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/OptimisticOptimizations.java graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java src/share/vm/graal/graalCodeInstaller.cpp src/share/vm/runtime/compilationPolicy.hpp
diffstat 5 files changed, 22 insertions(+), 18 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java	Tue Mar 20 12:16:14 2012 -0700
+++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java	Tue Mar 20 16:15:27 2012 -0700
@@ -81,7 +81,7 @@
     public static int     LoopFrequencyPropagationPolicy     = -2;
 
     // profiling information
-    public static int     DeoptsToDisableOptimisticOptimization = 25;
+    public static int     DeoptsToDisableOptimisticOptimization = 40;
     public static boolean PrintDisabledOptimisticOptimizations = true;
     public static int     MatureExecutionsBranch             = 1;
     public static int     MatureExecutionsPerSwitchCase      = 1;
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/OptimisticOptimizations.java	Tue Mar 20 12:16:14 2012 -0700
+++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/OptimisticOptimizations.java	Tue Mar 20 16:15:27 2012 -0700
@@ -23,6 +23,7 @@
 package com.oracle.graal.compiler;
 
 import com.oracle.graal.debug.*;
+import com.oracle.max.cri.ci.*;
 import com.oracle.max.cri.ri.*;
 import com.oracle.max.criutils.*;
 
@@ -40,17 +41,17 @@
 
     public OptimisticOptimizations(RiResolvedMethod method) {
         RiProfilingInfo profilingInfo = method.profilingInfo();
-        removeNeverExecutedCode = checkDeoptimization(profilingInfo, RiDeoptReason.UnreachedCode);
-        useTypeCheckedInlining = checkDeoptimization(profilingInfo, RiDeoptReason.TypeCheckedInliningViolated);
-        useTypeCheckHints = checkDeoptimization(profilingInfo, RiDeoptReason.OptimizedTypeCheckViolated);
-        useExceptionProbability = checkDeoptimization(profilingInfo, RiDeoptReason.NotCompiledExceptionHandler);
+        removeNeverExecutedCode = checkDeoptimization(method, profilingInfo, RiDeoptReason.UnreachedCode);
+        useTypeCheckedInlining = checkDeoptimization(method, profilingInfo, RiDeoptReason.TypeCheckedInliningViolated);
+        useTypeCheckHints = checkDeoptimization(method, profilingInfo, RiDeoptReason.OptimizedTypeCheckViolated);
+        useExceptionProbability = checkDeoptimization(method, profilingInfo, RiDeoptReason.NotCompiledExceptionHandler);
     }
 
-    private static boolean checkDeoptimization(RiProfilingInfo profilingInfo, RiDeoptReason reason) {
+    private static boolean checkDeoptimization(RiResolvedMethod method, RiProfilingInfo profilingInfo, RiDeoptReason reason) {
         boolean result = profilingInfo.getDeoptimizationCount(reason) < GraalOptions.DeoptsToDisableOptimisticOptimization;
         if (!result) {
             if (GraalOptions.PrintDisabledOptimisticOptimizations) {
-                TTY.println("WARN: deactivated optimistic optimization because of %s", reason.name());
+                TTY.println("WARN: deactivated optimistic optimizations for %s because of %s", CiUtil.format("%H.%n(%p)", method), reason.name());
             }
             disabledOptimisticOptsMetric.increment();
         }
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java	Tue Mar 20 12:16:14 2012 -0700
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/bridge/VMToCompilerImpl.java	Tue Mar 20 16:15:27 2012 -0700
@@ -299,6 +299,9 @@
 
                 public void run() {
                     try {
+                        if (method.name().contains("accept") && method.holder().name().contains("ClassReader")) {
+                            throw new AssertionError("Stop compiling");
+                        }
                         final OptimisticOptimizations optimisticOpts = new OptimisticOptimizations(method);
                         final PhasePlan plan = createHotSpotSpecificPhasePlan(optimisticOpts);
                         long startTime = System.nanoTime();
--- a/src/share/vm/graal/graalCodeInstaller.cpp	Tue Mar 20 12:16:14 2012 -0700
+++ b/src/share/vm/graal/graalCodeInstaller.cpp	Tue Mar 20 16:15:27 2012 -0700
@@ -199,15 +199,15 @@
       ScopeValue* cur_second = NULL;
       ScopeValue* value = get_hotspot_value(((oop*) values->base(T_OBJECT))[i], total_frame_size, objects, cur_second);
       
-      if (isLongArray && cur_second == NULL) {
-        // we're trying to put ints into a long array... this isn't really valid, but it's used for some optimizations.
-        // add an int 0 constant
-#ifdef BIG_ENDIAN
-        cur_second = value;
-        value = new ConstantIntValue(0);
-#else
-        cur_second = new ConstantIntValue(0);
-#endif
+      if (isLongArray && cur_second == NULL) {
+        // we're trying to put ints into a long array... this isn't really valid, but it's used for some optimizations.
+        // add an int 0 constant
+#ifdef BIG_ENDIAN
+        cur_second = value;
+        value = new ConstantIntValue(0);
+#else
+        cur_second = new ConstantIntValue(0);
+#endif
       }
 
       if (cur_second != NULL) {
--- a/src/share/vm/runtime/compilationPolicy.hpp	Tue Mar 20 12:16:14 2012 -0700
+++ b/src/share/vm/runtime/compilationPolicy.hpp	Tue Mar 20 16:15:27 2012 -0700
@@ -118,7 +118,7 @@
 
 // StackWalkCompPolicy - existing C2 policy
 
-//#ifdef COMPILER2
+#if defined(COMPILER2) || defined(GRAAL)
 class StackWalkCompPolicy : public NonTieredCompPolicy {
  public:
   virtual void method_invocation_event(methodHandle m, JavaThread* thread);
@@ -138,6 +138,6 @@
   // negative filter: should send NOT be inlined?  returns NULL (--> inline) or rejection msg
 
 };
-//#endif
+#endif
 
 #endif // SHARE_VM_RUNTIME_COMPILATIONPOLICY_HPP