Mercurial > hg > truffle
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