src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.printer/src/org/graalvm/compiler/printer/BinaryGraphPrinter.java
--- a/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.printer/src/org/graalvm/compiler/printer/BinaryGraphPrinter.java Thu Nov 15 21:05:47 2018 +0100
+++ b/src/jdk.internal.vm.compiler/share/classes/org.graalvm.compiler.printer/src/org/graalvm/compiler/printer/BinaryGraphPrinter.java Thu Nov 15 09:04:07 2018 -0800
@@ -229,29 +229,23 @@
@SuppressWarnings({"unchecked", "rawtypes"})
public void nodeProperties(GraphInfo info, Node node, Map<String, Object> props) {
node.getDebugProperties((Map) props);
- Graph graph = info.graph;
- ControlFlowGraph cfg = info.cfg;
NodeMap<Block> nodeToBlocks = info.nodeToBlocks;
- if (cfg != null && DebugOptions.PrintGraphProbabilities.getValue(graph.getOptions()) && node instanceof FixedNode) {
- try {
- props.put("probability", cfg.blockFor(node).probability());
- } catch (Throwable t) {
- props.put("probability", 0.0);
- props.put("probability-exception", t);
+
+ if (nodeToBlocks != null) {
+ Block block = getBlockForNode(node, nodeToBlocks);
+ if (block != null) {
+ props.put("relativeFrequency", block.getRelativeFrequency());
+ props.put("nodeToBlock", block);
}
}
- try {
- props.put("NodeCost-Size", node.estimatedNodeSize());
- props.put("NodeCost-Cycles", node.estimatedNodeCycles());
- } catch (Throwable t) {
- props.put("node-cost-exception", t.getMessage());
- }
+ props.put("nodeCostSize", node.estimatedNodeSize());
+ props.put("nodeCostCycles", node.estimatedNodeCycles());
if (nodeToBlocks != null) {
Object block = getBlockForNode(node, nodeToBlocks);
if (block != null) {
- props.put("node-to-block", block);
+ props.put("nodeToBlock", block);
}
}
@@ -289,13 +283,13 @@
}
}
- private Object getBlockForNode(Node node, NodeMap<Block> nodeToBlocks) {
+ private Block getBlockForNode(Node node, NodeMap<Block> nodeToBlocks) {
if (nodeToBlocks.isNew(node)) {
- return "NEW (not in schedule)";
+ return null;
} else {
Block block = nodeToBlocks.get(node);
if (block != null) {
- return block.getId();
+ return block;
} else if (node instanceof PhiNode) {
return getBlockForNode(((PhiNode) node).merge(), nodeToBlocks);
}