changeset 2907:aff4a6f17c26

IdealGraphVisualizer: use blocks from the input graphs in the difference graph
author Peter Hofer <peter.hofer@jku.at>
date Wed, 08 Jun 2011 18:03:15 +0200
parents 0017f484608c
children d6cfe798a265
files src/share/tools/IdealGraphVisualizer/Difference/src/com/sun/hotspot/igv/difference/Difference.java
diffstat 1 files changed, 14 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/src/share/tools/IdealGraphVisualizer/Difference/src/com/sun/hotspot/igv/difference/Difference.java	Wed Jun 08 17:42:07 2011 +0200
+++ b/src/share/tools/IdealGraphVisualizer/Difference/src/com/sun/hotspot/igv/difference/Difference.java	Wed Jun 08 18:03:15 2011 +0200
@@ -25,6 +25,7 @@
 package com.sun.hotspot.igv.difference;
 
 import com.sun.hotspot.igv.data.Group;
+import com.sun.hotspot.igv.data.InputBlock;
 import com.sun.hotspot.igv.data.InputEdge;
 import com.sun.hotspot.igv.data.InputGraph;
 import com.sun.hotspot.igv.data.InputNode;
@@ -90,6 +91,16 @@
         g.getProperties().setProperty("name", "Difference");
         InputGraph graph = g.addGraph(a.getName() + ", " + b.getName(), new Pair<InputGraph, InputGraph>(a, b));
 
+        Map<InputBlock, InputBlock> blocksMap = new HashMap<InputBlock, InputBlock>();
+        for (InputBlock blk : a.getBlocks()) {
+            InputBlock diffblk = graph.addBlock(blk.getName());
+            blocksMap.put(blk, diffblk);
+        }
+        for (InputBlock blk : b.getBlocks()) {
+            InputBlock diffblk = graph.addBlock(blk.getName());
+            blocksMap.put(blk, diffblk);
+        }
+
         Set<InputNode> nodesA = new HashSet<InputNode>(a.getNodes());
         Set<InputNode> nodesB = new HashSet<InputNode>(b.getNodes());
 
@@ -106,12 +117,14 @@
             inputNodeMap.put(n, n2);
             inputNodeMap.put(nB, n2);
             graph.addNode(n2);
+            graph.setBlock(n2, blocksMap.get(a.getBlock(n)));
             markAsChanged(n2, n, nB);
         }
 
         for (InputNode n : nodesA) {
             InputNode n2 = new InputNode(n);
             graph.addNode(n2);
+            graph.setBlock(n2, blocksMap.get(a.getBlock(n)));
             markAsDeleted(n2);
             inputNodeMap.put(n, n2);
         }
@@ -127,6 +140,7 @@
 
             n2.setId(curIndex);
             graph.addNode(n2);
+            graph.setBlock(n2, blocksMap.get(b.getBlock(n)));
             markAsNew(n2);
             inputNodeMap.put(n, n2);
         }