changeset 5147:3851c69bf4ea

Merge
author Gilles Duboscq <duboscq@ssw.jku.at>
date Thu, 22 Mar 2012 19:43:56 +0100
parents 25903e52af48 (diff) f7b2800b1738 (current diff)
children eeb2ca1bf3a9
files
diffstat 4 files changed, 14 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java	Thu Mar 22 19:13:09 2012 +0100
+++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/GraalOptions.java	Thu Mar 22 19:43:56 2012 +0100
@@ -117,11 +117,10 @@
     public static String Time                                = null;
     public static String Log                                 = null;
     public static String MethodFilter                        = null;
+    public static boolean DumpOnError                        = ____;
 
     // Ideal graph visualizer output settings
-    public static boolean PlotOnError                        = ____;
     public static int     PlotLevel                          = 3;
-    public static boolean PlotSnippets                       = ____;
     public static int     PrintIdealGraphLevel               = 0;
     public static boolean PrintIdealGraphFile                = ____;
     public static String  PrintIdealGraphAddress             = "127.0.0.1";
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/ComputeProbabilityPhase.java	Thu Mar 22 19:13:09 2012 +0100
+++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/ComputeProbabilityPhase.java	Thu Mar 22 19:43:56 2012 +0100
@@ -145,13 +145,11 @@
                     }
                     backEdgeProb += le.probability() * factor;
                 }
-                double d = backEdgeProb;
+                double d = loopBegin.probability() - backEdgeProb;
                 if (d < EPSILON) {
                     d = EPSILON;
-                } else if (d > loopBegin.probability() - EPSILON) {
-                    d = loopBegin.probability() - EPSILON;
                 }
-                loopFrequency = loopBegin.probability() / (loopBegin.probability() - d);
+                loopFrequency = loopBegin.probability() / d;
                 loopBegin.setLoopFrequency(loopFrequency);
             }
             return loopFrequency;
--- a/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotDebugConfig.java	Thu Mar 22 19:13:09 2012 +0100
+++ b/graal/com.oracle.graal.hotspot/src/com/oracle/graal/hotspot/HotSpotDebugConfig.java	Thu Mar 22 19:43:56 2012 +0100
@@ -143,7 +143,7 @@
         Debug.log(String.format("Exception occured in scope: %s", Debug.currentScope()));
         for (Object o : Debug.context()) {
             Debug.log("Context obj %s", o);
-            if (o instanceof Graph) {
+            if (o instanceof Graph && GraalOptions.DumpOnError) {
                 Graph graph = (Graph) o;
                 Debug.log("Found graph in context: ", graph);
                 Debug.dump(o, "Exception graph");
--- a/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java	Thu Mar 22 19:13:09 2012 +0100
+++ b/graal/com.oracle.graal.java/src/com/oracle/graal/java/GraphBuilderPhase.java	Thu Mar 22 19:43:56 2012 +0100
@@ -27,7 +27,6 @@
 
 import java.lang.reflect.*;
 import java.util.*;
-import java.util.concurrent.atomic.*;
 
 import com.oracle.graal.compiler.*;
 import com.oracle.graal.compiler.phases.*;
@@ -1139,9 +1138,19 @@
                 prob[i] = 1.0d / numberOfCases;
             }
         }
+        assert allPositive(prob);
         return prob;
     }
 
+    private static boolean allPositive(double[] a) {
+        for (double d : a) {
+            if (d < 0) {
+                return false;
+            }
+        }
+        return true;
+    }
+
     private void genLookupswitch() {
         int bci = bci();
         ValueNode value = frameState.ipop();