Mercurial > hg > graal-jvmci-8
changeset 10808:4278ab23c66f
new Option PrintGraphProbabilities to output probabilities during binary graph dumping
author | Lukas Stadler <lukas.stadler@jku.at> |
---|---|
date | Thu, 18 Jul 2013 14:34:45 +0200 |
parents | d3a677910eea |
children | 438dd12ff25b |
files | graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/NodesToDoubles.java graal/com.oracle.graal.phases/src/com/oracle/graal/phases/GraalOptions.java graal/com.oracle.graal.printer/src/com/oracle/graal/printer/BinaryGraphPrinter.java |
diffstat | 3 files changed, 20 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/NodesToDoubles.java Thu Jul 18 13:17:37 2013 +0200 +++ b/graal/com.oracle.graal.nodes/src/com/oracle/graal/nodes/util/NodesToDoubles.java Thu Jul 18 14:34:45 2013 +0200 @@ -39,6 +39,10 @@ nodeProbabilities.put(n, value); } + public boolean contains(FixedNode n) { + return nodeProbabilities.containsKey(n); + } + public double get(FixedNode n) { Double value = nodeProbabilities.get(n); assert value != null;
--- a/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/GraalOptions.java Thu Jul 18 13:17:37 2013 +0200 +++ b/graal/com.oracle.graal.phases/src/com/oracle/graal/phases/GraalOptions.java Thu Jul 18 14:34:45 2013 +0200 @@ -148,6 +148,8 @@ // Ideal graph visualizer output settings @Option(help = "") public static final OptionValue<Boolean> PrintBinaryGraphs = new OptionValue<>(true); + @Option(help = "outputs probabilities for fixed nodes during binary graph dumping") + public static final OptionValue<Boolean> PrintGraphProbabilities = new OptionValue<>(false); @Option(help = "") public static final OptionValue<Boolean> PrintCFG = new OptionValue<>(false); @Option(help = "")
--- a/graal/com.oracle.graal.printer/src/com/oracle/graal/printer/BinaryGraphPrinter.java Thu Jul 18 13:17:37 2013 +0200 +++ b/graal/com.oracle.graal.printer/src/com/oracle/graal/printer/BinaryGraphPrinter.java Thu Jul 18 14:34:45 2013 +0200 @@ -22,6 +22,8 @@ */ package com.oracle.graal.printer; +import static com.oracle.graal.phases.GraalOptions.*; + import java.io.*; import java.nio.*; import java.nio.channels.*; @@ -34,6 +36,8 @@ import com.oracle.graal.graph.NodeClass.Position; import com.oracle.graal.nodes.*; import com.oracle.graal.nodes.cfg.*; +import com.oracle.graal.nodes.util.*; +import com.oracle.graal.phases.graph.*; import com.oracle.graal.phases.schedule.*; public class BinaryGraphPrinter implements GraphPrinter { @@ -371,11 +375,21 @@ @SuppressWarnings("deprecation") private void writeNodes(Graph graph) throws IOException { + NodesToDoubles probabilities = null; + if (PrintGraphProbabilities.getValue()) { + try { + probabilities = new ComputeProbabilityClosure((StructuredGraph) graph).apply(); + } catch (Throwable t) { + } + } Map<Object, Object> props = new HashMap<>(); writeInt(graph.getNodeCount()); for (Node node : graph.getNodes()) { NodeClass nodeClass = node.getNodeClass(); node.getDebugProperties(props); + if (probabilities != null && node instanceof FixedNode && probabilities.contains((FixedNode) node)) { + props.put("probability", probabilities.get((FixedNode) node)); + } writeInt(node.getId()); writePoolObject(nodeClass); writeByte(node.predecessor() == null ? 0 : 1);