changeset 5311:46fb141ae20f

Merge
author Lukas Stadler <lukas.stadler@jku.at>
date Thu, 26 Apr 2012 14:35:25 +0200
parents 31fd58477e44 (current diff) 654318af685d (diff)
children f8fc624c07a7 a60d1ed97bd0
files
diffstat 4 files changed, 14 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/CanonicalizerPhase.java	Thu Apr 26 14:27:00 2012 +0200
+++ b/graal/com.oracle.graal.compiler/src/com/oracle/graal/compiler/phases/CanonicalizerPhase.java	Thu Apr 26 14:35:25 2012 +0200
@@ -129,8 +129,7 @@
         graph.stopTrackingInputChange();
         while (graph.getUsagesDroppedNodesCount() > 0) {
             for (Node n : graph.getAndCleanUsagesDroppedNodes()) {
-                if (!n.isDeleted() && n.usages().size() == 0 && n instanceof FloatingNode) {
-                    n.clearInputs();
+                if (!n.isDeleted() && n.usages().size() == 0 && GraphUtil.isFloatingNode().apply(n)) {
                     n.safeDelete();
                 }
             }
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java	Thu Apr 26 14:27:00 2012 +0200
+++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/GraphUtil.java	Thu Apr 26 14:35:25 2012 +0200
@@ -28,12 +28,15 @@
 
 import com.oracle.graal.graph.*;
 import com.oracle.graal.graph.iterators.*;
+import com.oracle.graal.graph.iterators.NodePredicates.PositiveTypePredicate;
 import com.oracle.graal.nodes.*;
 import com.oracle.graal.nodes.calc.*;
 import com.oracle.graal.nodes.virtual.*;
 
 public class GraphUtil {
 
+    private static final PositiveTypePredicate FLOATING = isA(FloatingNode.class).or(CallTargetNode.class).or(FrameState.class).or(VirtualObjectFieldNode.class).or(VirtualObjectNode.class);
+
     public static void killCFG(FixedNode node) {
         assert node.isAlive();
         if (node instanceof EndNode) {
@@ -83,7 +86,7 @@
     }
 
     public static NodePredicate isFloatingNode() {
-        return isA(FloatingNode.class).or(CallTargetNode.class).or(FrameState.class).or(VirtualObjectFieldNode.class).or(VirtualObjectNode.class);
+        return FLOATING;
     }
 
     public static void propagateKill(Node node) {
@@ -93,7 +96,7 @@
             // null out remaining usages
             node.replaceAtUsages(null);
             node.replaceAtPredecessors(null);
-            killUnusedFloatingInputs(node);
+            killWithUnusedFloatingInputs(node);
 
             for (Node usage : usagesSnapshot) {
                 if (!usage.isDeleted()) {
@@ -107,13 +110,13 @@
         }
     }
 
-    public static void killUnusedFloatingInputs(Node node) {
+    public static void killWithUnusedFloatingInputs(Node node) {
         List<Node> floatingInputs = node.inputs().filter(isFloatingNode()).snapshot();
         node.safeDelete();
 
         for (Node in : floatingInputs) {
             if (in.isAlive() && in.usages().isEmpty()) {
-                killUnusedFloatingInputs(in);
+                killWithUnusedFloatingInputs(in);
             }
         }
     }
--- a/src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/filters/color.filter	Thu Apr 26 14:27:00 2012 +0200
+++ b/src/share/tools/IdealGraphVisualizer/Graal/src/com/sun/hotspot/igv/graal/filters/color.filter	Thu Apr 26 14:35:25 2012 +0200
@@ -1,11 +1,12 @@
 colorize("name", ".*", white);
-colorize("name", "Begin|EndNode|LoopBegin|LoopEnd|Return", orange);
-colorize("name", "Phi.*", magenta);
+colorize("name", "Begin|EndNode|LoopBegin|LoopEnd|LoopExit|Return", orange);
+colorize("name", "Phi.*|ValueProxy", magenta);
 colorize("name", "FrameState@.*", new java.awt.Color(0.5, 0.8, 1.0));
 colorize("name", "If|Merge", pink);
 colorize("name", "const.*", new java.awt.Color(0.7, 0.7, 0.7));
 colorize("name", "Local", new java.awt.Color(0.85, 0.85, 0.85));
 colorize("name", "\\+|-|\\*|/|&|\\||<<|>>|>>>", cyan);
 colorize("name", "Comp .*", yellow);
+colorize("name", "Virtual.*", green);
 
 colorize("notInOwnBlock", "true", red);
\ No newline at end of file
--- a/visualizer/Graal/src/com/sun/hotspot/igv/graal/filters/color.filter	Thu Apr 26 14:27:00 2012 +0200
+++ b/visualizer/Graal/src/com/sun/hotspot/igv/graal/filters/color.filter	Thu Apr 26 14:35:25 2012 +0200
@@ -1,11 +1,12 @@
 colorize("name", ".*", white);
-colorize("name", "Begin|EndNode|LoopBegin|LoopEnd|Return", orange);
-colorize("name", "Phi.*", magenta);
+colorize("name", "Begin|EndNode|LoopBegin|LoopEnd|LoopExit|Return", orange);
+colorize("name", "Phi.*|ValueProxy", magenta);
 colorize("name", "FrameState@.*", new java.awt.Color(0.5, 0.8, 1.0));
 colorize("name", "If|Merge", pink);
 colorize("name", "const.*", new java.awt.Color(0.7, 0.7, 0.7));
 colorize("name", "Local", new java.awt.Color(0.85, 0.85, 0.85));
 colorize("name", "\\+|-|\\*|/|&|\\||<<|>>|>>>", cyan);
 colorize("name", "Comp .*", yellow);
+colorize("name", "Virtual.*", green);
 
 colorize("notInOwnBlock", "true", red);
\ No newline at end of file