summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--chapter05/src/main/java/com/seaofnodes/simple/Parser.java2
-rw-r--r--chapter05/src/main/java/com/seaofnodes/simple/node/ScopeNode.java2
-rw-r--r--chapter05/src/test/java/com/seaofnodes/simple/Chapter05Test.java2
3 files changed, 3 insertions, 3 deletions
diff --git a/chapter05/src/main/java/com/seaofnodes/simple/Parser.java b/chapter05/src/main/java/com/seaofnodes/simple/Parser.java
index ca040fd0..79b50672 100644
--- a/chapter05/src/main/java/com/seaofnodes/simple/Parser.java
+++ b/chapter05/src/main/java/com/seaofnodes/simple/Parser.java
@@ -55,8 +55,8 @@ public class Parser {
add("else");
add("false");
add("if");
+ add("int");
add("return");
- add("then");
add("true");
}};
diff --git a/chapter05/src/main/java/com/seaofnodes/simple/node/ScopeNode.java b/chapter05/src/main/java/com/seaofnodes/simple/node/ScopeNode.java
index 505ffcae..64061030 100644
--- a/chapter05/src/main/java/com/seaofnodes/simple/node/ScopeNode.java
+++ b/chapter05/src/main/java/com/seaofnodes/simple/node/ScopeNode.java
@@ -117,7 +117,7 @@ public class ScopeNode extends Node {
public RegionNode mergeScopes(ScopeNode that) {
RegionNode r = (RegionNode)ctrl(new RegionNode(null,ctrl(), that.ctrl()).peephole());
for( int i=1; i<nIns(); i++ )
- if( in(1) != that.in(i) ) // No need for redundant Phis
+ if( in(i) != that.in(i) ) // No need for redundant Phis
set_def(i,new PhiNode(_rlabels.get(i), r, in(i), that.in(i)).peephole());
that.kill(); // Kill merged scope
return r;
diff --git a/chapter05/src/test/java/com/seaofnodes/simple/Chapter05Test.java b/chapter05/src/test/java/com/seaofnodes/simple/Chapter05Test.java
index 95150f2e..ab956e9f 100644
--- a/chapter05/src/test/java/com/seaofnodes/simple/Chapter05Test.java
+++ b/chapter05/src/test/java/com/seaofnodes/simple/Chapter05Test.java
@@ -74,7 +74,7 @@ return c;
public void testChapter5Merge4() {
Parser parser = new Parser("int a=0;int b=0;if(arg)a=1;if(arg==0)b=2;return arg+a+b;#showGraph;", TypeInteger.BOT);
StopNode stop = parser.parse();
- assertEquals("return ((arg+Phi(Region13,1,0))+Phi(Region23,2,0));", stop.toString());
+ assertEquals("return ((arg+Phi(Region13,1,0))+Phi(Region22,2,0));", stop.toString());
}
@Test