diff options
| author | XmiliaH <45106915+XmiliaH@users.noreply.github.com> | 2023-11-01 10:25:28 +0100 |
|---|---|---|
| committer | Dibyendu Majumdar <dibyendumajumdar@users.noreply.github.com> | 2023-11-01 18:56:50 +0000 |
| commit | 6181af431c47199a00c48af5350e362e6c423faa (patch) | |
| tree | e62b37124f30e0245e1ed121460b6d675b4d67f2 | |
| parent | d6cf7887eba77a629aaf1116c4b8364891895e55 (diff) | |
| download | Simple-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
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 |
