summaryrefslogtreecommitdiff
path: root/chapter05/src/main/java/com/seaofnodes
diff options
context:
space:
mode:
authorXmiliaH <45106915+XmiliaH@users.noreply.github.com>2023-11-01 10:25:28 +0100
committerDibyendu Majumdar <dibyendumajumdar@users.noreply.github.com>2023-11-01 18:56:50 +0000
commit6181af431c47199a00c48af5350e362e6c423faa (patch)
treee62b37124f30e0245e1ed121460b6d675b4d67f2 /chapter05/src/main/java/com/seaofnodes
parentd6cf7887eba77a629aaf1116c4b8364891895e55 (diff)
downloadSimple-6181af431c47199a00c48af5350e362e6c423faa.tar.gz
Simple-6181af431c47199a00c48af5350e362e6c423faa.zip
Fix list of keywords and node index of merge (#27)
* Wrong input index used * Then is currently not a keyword * Some phis are now not created and ids shifted
Diffstat (limited to 'chapter05/src/main/java/com/seaofnodes')
-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
2 files changed, 2 insertions, 2 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;