summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chapter15/src/main/java/com/seaofnodes/simple/node/LoadNode.java6
-rw-r--r--chapter15/src/main/java/com/seaofnodes/simple/node/MemOpNode.java3
-rw-r--r--chapter15/src/main/java/com/seaofnodes/simple/node/NewNode.java4
-rw-r--r--chapter15/src/main/java/com/seaofnodes/simple/node/StoreNode.java4
4 files changed, 13 insertions, 4 deletions
diff --git a/chapter15/src/main/java/com/seaofnodes/simple/node/LoadNode.java b/chapter15/src/main/java/com/seaofnodes/simple/node/LoadNode.java
index 3048e2d9..28aee489 100644
--- a/chapter15/src/main/java/com/seaofnodes/simple/node/LoadNode.java
+++ b/chapter15/src/main/java/com/seaofnodes/simple/node/LoadNode.java
@@ -25,8 +25,10 @@ public class LoadNode extends MemOpNode {
super(name, alias, glb, mem, ptr, off);
}
- @Override public String label() { return _name; }
- @Override public String glabel() { return "."+_name; }
+ // GraphVis DOT code and debugger labels
+ @Override public String label() { return "st_"+mlabel(); }
+ // GraphVis node-internal labels
+ @Override public String glabel() { return _name.equals("[]=") ? "[]=" : "." +_name+"="; }
@Override
StringBuilder _print1(StringBuilder sb, BitSet visited) { return sb.append(".").append(_name); }
diff --git a/chapter15/src/main/java/com/seaofnodes/simple/node/MemOpNode.java b/chapter15/src/main/java/com/seaofnodes/simple/node/MemOpNode.java
index 4d441951..1a819da5 100644
--- a/chapter15/src/main/java/com/seaofnodes/simple/node/MemOpNode.java
+++ b/chapter15/src/main/java/com/seaofnodes/simple/node/MemOpNode.java
@@ -24,6 +24,9 @@ public abstract class MemOpNode extends Node {
addDef(value);
}
+ //
+ String mlabel() { return _name.equals("[]") ? "ary" : (_name.equals("#") ? "len" : _name); }
+
public Node mem() { return in(1); }
public Node ptr() { return in(2); }
public Node off() { return in(3); }
diff --git a/chapter15/src/main/java/com/seaofnodes/simple/node/NewNode.java b/chapter15/src/main/java/com/seaofnodes/simple/node/NewNode.java
index 75db67fd..d7220bdc 100644
--- a/chapter15/src/main/java/com/seaofnodes/simple/node/NewNode.java
+++ b/chapter15/src/main/java/com/seaofnodes/simple/node/NewNode.java
@@ -26,7 +26,9 @@ public class NewNode extends Node implements MultiNode {
_ptr = ptr;
}
- @Override public String label() { return "new_" + _ptr._obj.str(); }
+ @Override public String label() {
+ return "new_" + (_ptr._obj.isAry() ? "ary_"+_ptr._obj._fields[1]._type.str() : _ptr._obj.str());
+ }
@Override
StringBuilder _print1(StringBuilder sb, BitSet visited) {
diff --git a/chapter15/src/main/java/com/seaofnodes/simple/node/StoreNode.java b/chapter15/src/main/java/com/seaofnodes/simple/node/StoreNode.java
index 6bdbbc61..b1c74b94 100644
--- a/chapter15/src/main/java/com/seaofnodes/simple/node/StoreNode.java
+++ b/chapter15/src/main/java/com/seaofnodes/simple/node/StoreNode.java
@@ -25,7 +25,9 @@ public class StoreNode extends MemOpNode {
_init = init;
}
- @Override public String label() { return "." +_name+"="; }
+ // GraphVis DOT code and debugger labels
+ @Override public String label() { return "st_"+mlabel(); }
+ // GraphVis node-internal labels
@Override public String glabel() { return "." +_name+"="; }
@Override public boolean isMem() { return true; }