diff options
Diffstat (limited to 'chapter14')
14 files changed, 143 insertions, 160 deletions
diff --git a/chapter14/src/test/java/com/seaofnodes/simple/Chapter02Test.java b/chapter14/src/test/java/com/seaofnodes/simple/Chapter02Test.java index 2deba460..75ee0b70 100644 --- a/chapter14/src/test/java/com/seaofnodes/simple/Chapter02Test.java +++ b/chapter14/src/test/java/com/seaofnodes/simple/Chapter02Test.java @@ -14,8 +14,6 @@ public class Chapter02Test { Node._disablePeephole = true; // disable peephole so we can observe full graph StopNode ret = parser.parse(); assertEquals("return ((1+(2*3))+(-5));", ret.print()); - GraphVisualizer gv = new GraphVisualizer(); - System.out.println(gv.generateDotOutput(parser)); Node._disablePeephole = false; } @@ -59,8 +57,6 @@ public class Chapter02Test { Parser parser = new Parser("return 1+2*3+-5;"); StopNode ret = parser.parse(); assertEquals("return 2;", ret.print()); - GraphVisualizer gv = new GraphVisualizer(); - System.out.println(gv.generateDotOutput(parser)); } } diff --git a/chapter14/src/test/java/com/seaofnodes/simple/Chapter03Test.java b/chapter14/src/test/java/com/seaofnodes/simple/Chapter03Test.java index 407fbe48..c76df903 100644 --- a/chapter14/src/test/java/com/seaofnodes/simple/Chapter03Test.java +++ b/chapter14/src/test/java/com/seaofnodes/simple/Chapter03Test.java @@ -31,7 +31,7 @@ public class Chapter03Test { @Test public void testVarScopeNoPeephole() { - Parser parser = new Parser("int a=1; int b=2; int c=0; { int b=3; c=a+b; #showGraph; } return c; #showGraph;"); + Parser parser = new Parser("int a=1; int b=2; int c=0; { int b=3; c=a+b; } return c; "); Node._disablePeephole = true; StopNode ret = parser.parse(); Node._disablePeephole = false; @@ -40,7 +40,7 @@ public class Chapter03Test { @Test public void testVarDist() { - Parser parser = new Parser("int x0=1; int y0=2; int x1=3; int y1=4; return (x0-x1)*(x0-x1) + (y0-y1)*(y0-y1); #showGraph;"); + Parser parser = new Parser("int x0=1; int y0=2; int x1=3; int y1=4; return (x0-x1)*(x0-x1) + (y0-y1)*(y0-y1); "); StopNode ret = parser.parse(); assertEquals("return 8;", ret.print()); } diff --git a/chapter14/src/test/java/com/seaofnodes/simple/Chapter04Test.java b/chapter14/src/test/java/com/seaofnodes/simple/Chapter04Test.java index 317fe677..70f38dd6 100644 --- a/chapter14/src/test/java/com/seaofnodes/simple/Chapter04Test.java +++ b/chapter14/src/test/java/com/seaofnodes/simple/Chapter04Test.java @@ -10,7 +10,7 @@ public class Chapter04Test { @Test public void testPeephole() { - Parser parser = new Parser("return 1+arg+2; #showGraph;"); + Parser parser = new Parser("return 1+arg+2; "); StopNode ret = parser.parse(); assertEquals("return (arg+3);", ret.print()); } @@ -38,7 +38,7 @@ public class Chapter04Test { @Test public void testPeephole3() { - Parser parser = new Parser("return 1+arg+2+arg+3; #showGraph;"); + Parser parser = new Parser("return 1+arg+2+arg+3; "); StopNode ret = parser.parse(); assertEquals("return ((arg*2)+6);", ret.print()); } @@ -52,7 +52,7 @@ public class Chapter04Test { @Test public void testVarArg() { - Parser parser = new Parser("return arg; #showGraph;"); + Parser parser = new Parser("return arg; "); StopNode stop = parser.parse(); ReturnNode ret = stop.ret(); assertTrue(ret.in(0) instanceof CProjNode); @@ -61,49 +61,49 @@ public class Chapter04Test { @Test public void testConstantArg() { - Parser parser = new Parser("return arg; #showGraph;", TypeInteger.constant(2)); + Parser parser = new Parser("return arg; ", TypeInteger.constant(2)); StopNode ret = parser.parse(); assertEquals("return 2;", ret.print()); } @Test public void testCompEq() { - Parser parser = new Parser("return 3==3; #showGraph;"); + Parser parser = new Parser("return 3==3; "); StopNode ret = parser.parse(); assertEquals("return 1;", ret.print()); } @Test public void testCompEq2() { - Parser parser = new Parser("return 3==4; #showGraph;"); + Parser parser = new Parser("return 3==4; "); StopNode ret = parser.parse(); assertEquals("return 0;", ret.print()); } @Test public void testCompNEq() { - Parser parser = new Parser("return 3!=3; #showGraph;"); + Parser parser = new Parser("return 3!=3; "); StopNode ret = parser.parse(); assertEquals("return 0;", ret.print()); } @Test public void testCompNEq2() { - Parser parser = new Parser("return 3!=4; #showGraph;"); + Parser parser = new Parser("return 3!=4; "); StopNode ret = parser.parse(); assertEquals("return 1;", ret.print()); } @Test public void testBug1() { - Parser parser = new Parser("int a=arg+1; int b=a; b=1; return a+2; #showGraph;"); + Parser parser = new Parser("int a=arg+1; int b=a; b=1; return a+2; "); StopNode ret = parser.parse(); assertEquals("return (arg+3);", ret.print()); } @Test public void testBug2() { - Parser parser = new Parser("int a=arg+1; a=a; return a; #showGraph;"); + Parser parser = new Parser("int a=arg+1; a=a; return a; "); StopNode ret = parser.parse(); assertEquals("return (arg+1);", ret.print()); } diff --git a/chapter14/src/test/java/com/seaofnodes/simple/Chapter05Test.java b/chapter14/src/test/java/com/seaofnodes/simple/Chapter05Test.java index d48bde7f..9d154413 100644 --- a/chapter14/src/test/java/com/seaofnodes/simple/Chapter05Test.java +++ b/chapter14/src/test/java/com/seaofnodes/simple/Chapter05Test.java @@ -17,11 +17,11 @@ if (arg == 1) a = arg+2; else { a = arg-3; - #showGraph; + } -#showGraph; + return a;"""); - StopNode ret = parser.parse().iterate(true); + StopNode ret = parser.parse().iterate(); assertEquals("return Phi(Region20,(arg+2),(arg-3));", ret.toString()); } @@ -36,7 +36,7 @@ if (arg == 1) { c = 4; } return c;""", TypeInteger.BOT); - StopNode ret = parser.parse().iterate(true); + StopNode ret = parser.parse().iterate(); assertEquals("return Phi(Region19,4,3);", ret.toString()); } @@ -48,7 +48,7 @@ if( arg==1 ) return 3; else return 4; -#showGraph;""", TypeInteger.BOT); +""", TypeInteger.BOT); StopNode stop = parser.parse(); assertEquals("Stop[ return 3; return 4; ]", stop.toString()); } @@ -64,7 +64,7 @@ if( arg==1 ) else b=a+1; return a+b;"""); - StopNode ret = parser.parse().iterate(true); + StopNode ret = parser.parse().iterate(); assertEquals("return ((arg*2)+Phi(Region23,2,3));", ret.toString()); } @@ -79,7 +79,7 @@ if( arg==1 ) else a=b+1; return a+b;"""); - StopNode ret = parser.parse().iterate(true); + StopNode ret = parser.parse().iterate(); assertEquals("return ((Phi(Region34,(arg*2),arg)+arg)+Phi(Region,4,5));", ret.toString()); } @@ -98,7 +98,7 @@ else if( arg==3 ) else a=5; return a; -#showGraph;""", TypeInteger.BOT); +""", TypeInteger.BOT); StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Region38,Phi(Region24,2,3),Phi(Region36,4,5));", stop.toString()); } @@ -114,7 +114,7 @@ if( arg ) if( arg==0 ) b=2; return arg+a+b; -#showGraph;""", TypeInteger.BOT); +""", TypeInteger.BOT); StopNode stop = parser.parse(); assertEquals("return ((arg+Phi(Region17,1,0))+Phi(Region33,2,0));", stop.toString()); } diff --git a/chapter14/src/test/java/com/seaofnodes/simple/Chapter06Test.java b/chapter14/src/test/java/com/seaofnodes/simple/Chapter06Test.java index 516dbf09..99ce8fa5 100644 --- a/chapter14/src/test/java/com/seaofnodes/simple/Chapter06Test.java +++ b/chapter14/src/test/java/com/seaofnodes/simple/Chapter06Test.java @@ -15,7 +15,7 @@ public class Chapter06Test { if( true ) return 2; return 1; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return 2;", stop.toString()); assertTrue(stop.ret().ctrl() instanceof CProjNode); } @@ -44,7 +44,7 @@ else a=3; return a; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return 2;", stop.toString()); assertTrue(stop.ret().ctrl() instanceof CProjNode); } @@ -64,7 +64,7 @@ if( a==2 ) else b=5; return b;""", TypeInteger.BOT); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Region34,42,5);", stop.toString()); } @@ -83,7 +83,7 @@ if( arg==2 ) else b=5; return b;""", TypeInteger.BOT); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Region32,2,5);", stop.toString()); } @@ -102,7 +102,7 @@ else if( arg==3 ) else a=5; return a; -#showGraph;""", TypeInteger.constant(2)); +""", TypeInteger.constant(2)); StopNode stop = parser.parse(); assertEquals("return 5;", stop.toString()); } @@ -123,7 +123,7 @@ else a=5; return a; """, TypeInteger.constant(1)); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return 3;", stop.toString()); } @@ -143,7 +143,7 @@ else a=5; return a; """, TypeInteger.BOT); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Region43,3,Phi(Region41,4,5));", stop.toString()); } @@ -163,7 +163,7 @@ else a=5; return a; """, TypeInteger.constant(1)); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return 3;", stop.toString()); } @@ -183,7 +183,7 @@ else a=5; return a; """, TypeInteger.constant(3)); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return 4;", stop.toString()); } @@ -199,7 +199,7 @@ if( arg ) { } return a+b; """); - StopNode ret = parser.parse().iterate(true); + StopNode ret = parser.parse().iterate(); assertEquals("return Phi(Region28,4,1);", ret.toString()); } @@ -216,7 +216,7 @@ if( arg ) { } return a+b; """, TypeInteger.constant(1)); - StopNode ret = parser.parse().iterate(true); + StopNode ret = parser.parse().iterate(); assertEquals("return 4;", ret.toString()); } @@ -232,7 +232,7 @@ if( arg ) { } return a+b; """, TypeInteger.constant(0)); - StopNode ret = parser.parse().iterate(true); + StopNode ret = parser.parse().iterate(); assertEquals("return 1;", ret.toString()); } @@ -250,7 +250,7 @@ if( arg ) { } return a+b+c; """); - StopNode ret = parser.parse().iterate(true); + StopNode ret = parser.parse().iterate(); assertEquals("return (Phi(Region40,Phi(Region25,2,3),0)+Phi(Region,3,1));", ret.toString()); } @@ -269,7 +269,7 @@ if( arg ) { } return a+b+c; """, TypeInteger.constant(1)); - StopNode ret = parser.parse().iterate(true); + StopNode ret = parser.parse().iterate(); assertEquals("return 6;", ret.toString()); } @@ -287,7 +287,7 @@ if( arg ) { } return a+b+c; """, TypeInteger.constant(2)); - StopNode ret = parser.parse().iterate(true); + StopNode ret = parser.parse().iterate(); assertEquals("return 5;", ret.toString()); } diff --git a/chapter14/src/test/java/com/seaofnodes/simple/Chapter07Test.java b/chapter14/src/test/java/com/seaofnodes/simple/Chapter07Test.java index faa81347..e6e0560b 100644 --- a/chapter14/src/test/java/com/seaofnodes/simple/Chapter07Test.java +++ b/chapter14/src/test/java/com/seaofnodes/simple/Chapter07Test.java @@ -13,12 +13,11 @@ public class Chapter07Test { """ while(arg < 10) { arg = arg + 1; - #showGraph; } return arg; """); Node._disablePeephole = true; - StopNode stop = parser.parse(true); + StopNode stop = parser.parse(); assertEquals("return Phi(Loop8,arg,(Phi_arg+1));", stop.toString()); assertTrue(stop.ret().ctrl() instanceof CProjNode); Node._disablePeephole = false; @@ -36,7 +35,7 @@ if(arg){}else{ } return a; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Region26,1,Phi(Loop15,1,(Phi_a+1)));", stop.toString()); } @@ -56,9 +55,8 @@ while(i < arg) { } return sum; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Loop10,0,Phi(Loop22,Phi_sum,(Phi_sum+Phi(Loop,0,(Phi_j+1)))));", stop.toString()); - System.out.println(IRPrinter.prettyPrint(stop,99)); } @Test @@ -74,11 +72,10 @@ while(a < 10) { return b; """); Node._disablePeephole = true; - StopNode stop = parser.parse(true); + StopNode stop = parser.parse(); assertEquals("return Phi(Loop10,2,Phi(Region29,Phi_b,4));", stop.toString()); assertTrue(stop.ret().ctrl() instanceof CProjNode); Node._disablePeephole = false; - System.out.println(IRPrinter.prettyPrint(stop,99)); } @Test @@ -95,10 +92,9 @@ while(a < 10) { } return b; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Loop10,2,(Phi(Region29,Phi_b,4)+1));", stop.toString()); assertTrue(stop.ret().ctrl() instanceof CProjNode); - System.out.println(IRPrinter.prettyPrint(stop,99)); } @@ -114,7 +110,7 @@ while(a < 10) { return a; """); Node._disablePeephole = true; - StopNode stop = parser.parse(true); + StopNode stop = parser.parse(); assertEquals("return Phi(Loop9,1,((Phi_a+1)+2));", stop.toString()); assertTrue(stop.ret().ctrl() instanceof CProjNode); Node._disablePeephole = false; @@ -131,7 +127,7 @@ while(a < 10) { } return a; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Loop9,1,(Phi_a+3));", stop.toString()); assertTrue(stop.ret().ctrl() instanceof CProjNode); } @@ -145,11 +141,10 @@ while(arg) a = 2; return a; """); Node._disablePeephole = true; - StopNode stop = parser.parse(true); + StopNode stop = parser.parse(); assertEquals("return Phi(Loop9,1,2);", stop.toString()); assertTrue(stop.ret().ctrl() instanceof CProjNode); Node._disablePeephole = false; - System.out.println(IRPrinter.prettyPrint(stop,99)); } @Test @@ -163,7 +158,6 @@ return a; StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Loop9,1,2);", stop.toString()); assertTrue(stop.ret().ctrl() instanceof CProjNode); - System.out.println(IRPrinter.prettyPrint(stop, 99)); } @Test @@ -178,7 +172,7 @@ while(a < 10) { return a; """); Node._disablePeephole = true; - StopNode stop = parser.parse(true); + StopNode stop = parser.parse(); assertEquals("return Phi(Loop9,1,((Phi_a+1)+2));", stop.toString()); assertTrue(stop.ret().ctrl() instanceof CProjNode); Node._disablePeephole = false; @@ -195,7 +189,7 @@ while(a < 10) { } return a; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Loop9,1,(Phi_a+3));", stop.toString()); assertTrue(stop.ret().ctrl() instanceof CProjNode); } @@ -213,7 +207,7 @@ while(a < 10) { return a; """); Node._disablePeephole = true; - StopNode stop = parser.parse(true); + StopNode stop = parser.parse(); assertEquals("return Phi(Loop10,1,((Phi_a+1)+2));", stop.toString()); assertTrue(stop.ret().ctrl() instanceof CProjNode); Node._disablePeephole = false; @@ -231,7 +225,7 @@ while(a < 10) { } return a; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Loop10,1,(Phi_a+3));", stop.toString()); assertTrue(stop.ret().ctrl() instanceof CProjNode); } diff --git a/chapter14/src/test/java/com/seaofnodes/simple/Chapter08Test.java b/chapter14/src/test/java/com/seaofnodes/simple/Chapter08Test.java index aa650022..7760ae09 100644 --- a/chapter14/src/test/java/com/seaofnodes/simple/Chapter08Test.java +++ b/chapter14/src/test/java/com/seaofnodes/simple/Chapter08Test.java @@ -22,7 +22,7 @@ while(arg < 10) { } return arg; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Region37,Phi(Region26,Phi(Loop8,arg,(Phi_arg+1)),Add),Add);", stop.toString()); assertTrue(stop.ret().ctrl() instanceof RegionNode); Assert.assertEquals(5L, Evaluator.evaluate(stop, 1)); @@ -45,10 +45,9 @@ while(arg < 10) { } return a; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Loop9,1,Phi(Region43,Phi_a,(Phi_a+1)));", stop.toString()); assertTrue(stop.ret().ctrl() instanceof CProjNode); - System.out.println(IRPrinter.prettyPrint(stop,99)); } @@ -65,7 +64,7 @@ while(arg < 10) { } return arg; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Region35,Phi(Loop8,arg,(Phi_arg+1)),Add);", stop.toString()); assertTrue(stop.ret().ctrl() instanceof RegionNode); } @@ -81,7 +80,7 @@ while(arg < 10) { } return arg; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Region26,Phi(Loop8,arg,(Phi_arg+1)),Add);", stop.toString()); assertTrue(stop.ret().ctrl() instanceof RegionNode); } @@ -100,7 +99,7 @@ while(arg < 10) { } return arg; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Loop8,arg,(Phi_arg+1));", stop.toString()); assertTrue(stop.ret().ctrl() instanceof CProjNode); } @@ -117,7 +116,7 @@ while(arg < 10) { } return arg; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Loop8,arg,(Phi_arg+1));", stop.toString()); assertTrue(stop.ret().ctrl() instanceof CProjNode); } @@ -133,15 +132,14 @@ while( arg < 10 ) { } return arg; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return arg;", stop.toString()); - System.out.println(IRPrinter.prettyPrint(stop,99)); } @Test public void testRegress2() { Parser parser = new Parser("if(1) return 0; else while(arg>--arg) arg=arg+1; return 0;"); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return 0;", stop.toString()); } @@ -169,7 +167,7 @@ while(arg < 10) { } return arg; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return arg;", stop.toString()); } @@ -186,7 +184,7 @@ while(arg < 10) { } return a; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Region29,Phi(Loop9,1,(Phi_a+1)),Add);", stop.toString()); assertTrue(stop.ret().ctrl() instanceof RegionNode); } @@ -202,7 +200,7 @@ while(1) { } return a; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return (Phi(Loop9,1,Add)+1);", stop.toString()); assertTrue(stop.ret().ctrl() instanceof CProjNode prj && prj._idx==1 ); } diff --git a/chapter14/src/test/java/com/seaofnodes/simple/Chapter09Test.java b/chapter14/src/test/java/com/seaofnodes/simple/Chapter09Test.java index dba40b8a..64bbf245 100644 --- a/chapter14/src/test/java/com/seaofnodes/simple/Chapter09Test.java +++ b/chapter14/src/test/java/com/seaofnodes/simple/Chapter09Test.java @@ -25,7 +25,7 @@ while(v0) { } return 0; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); } @Test @@ -41,7 +41,7 @@ else { } return x; """); - StopNode stop = parser.parse(true); + StopNode stop = parser.parse(); assertEquals("Stop[ return (arg*2); return (Mul+1); ]", stop.toString()); Assert.assertEquals(2L, Evaluator.evaluate(stop, 1)); Assert.assertEquals(23L, Evaluator.evaluate(stop, 11)); @@ -53,7 +53,7 @@ return x; """ return arg*arg-arg*arg; """); - StopNode stop = parser.parse(true); + StopNode stop = parser.parse(); assertEquals("return 0;", stop.toString()); Assert.assertEquals(0L, Evaluator.evaluate(stop, 1)); } @@ -68,7 +68,7 @@ while (arg < 10) { } return arg; """); - StopNode stop = parser.parse(true).iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Loop9,arg,(Phi_arg+2));", stop.toString()); Assert.assertEquals(11L, Evaluator.evaluate(stop, 1)); } @@ -85,7 +85,7 @@ while (arg < 10) { } return arg; """); - StopNode stop = parser.parse(true).iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Loop10,arg,(Phi_arg+4));", stop.toString()); Assert.assertEquals(13L, Evaluator.evaluate(stop, 1)); } @@ -114,7 +114,7 @@ while (arg) { } return arg; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Loop16,arg,(Phi_arg+1));", stop.toString()); } @@ -132,14 +132,14 @@ while(v1+arg) { v1=v2; } """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("Stop[ return 0; return 0; ]", stop.toString()); } @Test public void testWhile0() { Parser parser = new Parser("while(0) continue; if(0) arg=0;"); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return 0;", stop.toString()); } @@ -151,7 +151,7 @@ if(0) while(0) { while(0) {} } """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return 0;", stop.toString()); } @@ -159,14 +159,14 @@ if(0) while(0) { @Test public void testPrecedence() { Parser parser = new Parser("return 3-1+2;"); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return 4;", stop.toString()); } @Test public void testSwap2() { Parser parser = new Parser("return 1+(1+1);"); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return 3;", stop.toString()); } @@ -184,7 +184,7 @@ while(arg) { } return a; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Loop11,0,(-(Phi_a+3)));", stop.toString()); } @@ -198,7 +198,7 @@ arg=0; int v0=0!=0<-0; return -0+0+0; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return 0;", stop.toString()); } @@ -206,14 +206,14 @@ return -0+0+0; @Test public void testFuzz2() { Parser parser = new Parser("return 0+-0;"); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return 0;", stop.toString()); } @Test public void testFuzz3() { Parser parser = new Parser("int v0=0; while(0==69) while(v0) return 0;"); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return 0;", stop.toString()); } @@ -225,7 +225,7 @@ while(1) { if(1<0) while(arg==-0) arg=arg-arg; } """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return 0;", stop.toString()); } @@ -247,7 +247,7 @@ while(1) { } return 0!=0; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return 0;", stop.toString()); } @@ -259,7 +259,7 @@ int v0=0; while(0==1) while(v0) v0=1+v0; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return 0;", stop.toString()); } @@ -275,14 +275,14 @@ while(1) v1=1; return v1+v0; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return 0;", stop.toString()); } @Test public void testFuzz8() { - Parser parser = new Parser("while(arg) arg = arg - 1; #showGraph; return arg;"); - StopNode stop = parser.parse().iterate(true); + Parser parser = new Parser("while(arg) arg = arg - 1; return arg;"); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Loop8,arg,(Phi_arg-1));", stop.toString()); } diff --git a/chapter14/src/test/java/com/seaofnodes/simple/Chapter10Test.java b/chapter14/src/test/java/com/seaofnodes/simple/Chapter10Test.java index 65bd1170..fb324fd9 100644 --- a/chapter14/src/test/java/com/seaofnodes/simple/Chapter10Test.java +++ b/chapter14/src/test/java/com/seaofnodes/simple/Chapter10Test.java @@ -48,8 +48,7 @@ bar.a = 1; bar.a = 2; return bar.a; """); - StopNode stop = parser.parse(false).iterate(true); - System.out.println(IRPrinter.prettyPrint(stop, 99, true)); + StopNode stop = parser.parse(false).iterate(); assertEquals("return 2;", stop.toString()); } @@ -65,8 +64,7 @@ else v.y = 3; return v; """); - StopNode stop = parser.parse(true).iterate(true); - System.out.println(IRPrinter.prettyPrint(stop, 99, true)); + StopNode stop = parser.parse().iterate(); assertEquals("return new Vector2D;", stop.toString()); } @@ -79,7 +77,7 @@ struct s0 { s0? v1=null; int v3=v1.zAicm; """); - try { parser.parse(true); fail(); } + try { parser.parse(); fail(); } catch( Exception e ) { assertEquals("Accessing unknown field 'zAicm' from 'null'",e.getMessage()); } } @@ -89,7 +87,7 @@ int v3=v1.zAicm; struct s0 { int v0; } arg=0+new s0.0; """); - try { parser.parse(true); fail(); } + try { parser.parse(); fail(); } catch( Exception e ) { assertEquals("Expected an identifier, found 'null'",e.getMessage()); } } @@ -104,7 +102,7 @@ while (arg) { } return bar.a; """); - StopNode stop = parser.parse(false).iterate(true); + StopNode stop = parser.parse(false).iterate(); assertEquals("return Phi(Loop12,0,(Phi_a+2));", stop.toString()); } @@ -117,7 +115,7 @@ if (arg) bar = null; bar.a = 1; return bar.a; """); - try { parser.parse(true).iterate(true); fail(); } + try { parser.parse().iterate(); fail(); } catch( Exception e ) { assertEquals("Type null is not of declared type *Bar",e.getMessage()); } } @@ -130,7 +128,7 @@ if (arg) bar = new Bar; bar.a = 1; return bar.a; """); - try { parser.parse(true).iterate(true); fail(); } + try { parser.parse().iterate(); fail(); } catch( Exception e ) { assertEquals("Might be null accessing 'a'",e.getMessage()); } } @@ -143,7 +141,7 @@ if (arg) bar = null; bar.a = 1; return bar.a; """); - try { parser.parse(true); fail(); } + try { parser.parse(); fail(); } catch( Exception e ) { assertEquals("Type null is not of declared type *Bar", e.getMessage()); } } @@ -156,7 +154,7 @@ if (arg) bar = null; if( bar ) bar.a = 1; return bar; """); - StopNode stop = parser.parse(false).iterate(true); + StopNode stop = parser.parse(false).iterate(); assertEquals("return Phi(Region31,(*void)Phi(Region19,null,new Bar),null);", stop.toString()); } @@ -172,7 +170,7 @@ if( !bar ) rez=4; else bar.a = 1; return rez; """); - StopNode stop = parser.parse(false).iterate(true); + StopNode stop = parser.parse(false).iterate(); assertEquals("return Phi(Region37,4,3);", stop.toString()); } @@ -189,7 +187,7 @@ while(arg) { } return ret; """); - try { parser.parse(true).iterate(true); fail(); } + try { parser.parse().iterate(); fail(); } catch( Exception e ) { assertEquals("Might be null accessing 'v0'", e.getMessage()); } } @@ -204,7 +202,7 @@ s0? v1=new s0; s0? v1; v1=new s0; """); - try { parser.parse(true); fail(); } + try { parser.parse(); fail(); } catch( Exception e ) { assertEquals("Redefining name 'v1'", e.getMessage()); } } @@ -226,7 +224,7 @@ while( i.x < i.len ) { } return sum; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Loop17,0,(Phi(Loop,0,(Phi_x+1))+Phi_sum));", stop.toString()); } @@ -243,12 +241,11 @@ while(arg) { v0.v0 = arg; arg = arg-1; if (arg==5) ret=v0; - #showGraph; + } return ret; """); - StopNode stop = parser.parse(true).iterate(true); - System.out.println(IRPrinter.prettyPrint(stop, 99, true)); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Loop12,new s0,Phi(Region34,new s0,Phi_ret));", stop.toString()); } @@ -262,12 +259,11 @@ while(arg) { v0.v0 = arg; arg = arg-1; if (arg==5) ret=v0; - #showGraph; + } return ret; """); - StopNode stop = parser.parse(true).iterate(true); - System.out.println(IRPrinter.prettyPrint(stop, 99, true)); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Loop15,new s0,Phi(Region35,new s0,Phi_ret));", stop.toString()); } @@ -284,8 +280,7 @@ while(arg < 10) { } return ret; """); - StopNode stop = parser.parse(true).iterate(true); - System.out.println(IRPrinter.prettyPrint(stop, 99, true)); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Loop12,new s0,Phi(Region33,new s0,Phi_ret));", stop.toString()); } @@ -299,7 +294,7 @@ if(0>=0) return new s0; return new s0; int v0=null.f0; """); - try { parser.parse(true); fail(); } + try { parser.parse(); fail(); } catch( Exception e ) { assertEquals("Accessing unknown field 'f0' from 'null'", e.getMessage()); } } @@ -315,7 +310,7 @@ if(0) { } } """); - StopNode stop = parser.parse(true).iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return 0;", stop.toString()); } @@ -329,7 +324,7 @@ if(0) return 0; else return new s0; if(new s0.f0) return 0; """); - StopNode stop = parser.parse(true).iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return new s0;", stop.toString()); } @@ -345,7 +340,7 @@ while(0<arg) { } return 0; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); } @Test @@ -357,7 +352,7 @@ while(v0.f0) {} s0 v1 = v0; return v1; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return new s0;", stop.toString()); } @@ -389,7 +384,7 @@ while(0) {} } } } """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return 0;", stop.toString()); } @@ -400,7 +395,7 @@ int v0=arg==0; while(v0) continue; return 0; """); - StopNode stop = parser.parse().iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return 0;", stop.toString()); } diff --git a/chapter14/src/test/java/com/seaofnodes/simple/Chapter11Test.java b/chapter14/src/test/java/com/seaofnodes/simple/Chapter11Test.java index ca0db829..63cd511a 100644 --- a/chapter14/src/test/java/com/seaofnodes/simple/Chapter11Test.java +++ b/chapter14/src/test/java/com/seaofnodes/simple/Chapter11Test.java @@ -291,7 +291,7 @@ else { } } """); - StopNode stop = parser.parse(false).iterate(false); + StopNode stop = parser.parse().iterate(false); assertEquals("Stop[ return 9; return 0; return 0; return 0; ]", stop.toString()); } @@ -323,7 +323,7 @@ while( prime <= arg ) { } return primeCount; """); - StopNode stop = parser.parse(false).iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("Stop[ return 0; return Phi(Loop20,1,Phi(Region87,Phi_primeCount,Phi(Region81,(Phi_primeCount+1),Phi_primeCount))); ]", stop.toString()); assertEquals(0L, Evaluator.evaluate(stop, 1)); // No primes 1 or below assertEquals(1L, Evaluator.evaluate(stop, 2)); // 2 @@ -345,7 +345,7 @@ i=v.f; if (arg) v.f=1; return i; """); - StopNode stop = parser.parse(false).iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return .f;", stop.toString()); } @@ -365,7 +365,7 @@ if (arg) { } return i; """); - StopNode stop = parser.parse(false).iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Region34,.f,0);", stop.toString()); } @@ -384,7 +384,7 @@ if (v1) { } return v0; """); - StopNode stop = parser.parse(false).iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return new S;", stop.toString()); } @@ -401,7 +401,7 @@ if (arg+1) arg= 0; while (arg) v.f = 2; return i; """); - StopNode stop = parser.parse(false).iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return .f;", stop.toString()); } @@ -418,7 +418,7 @@ while(1) { } return v; """); - StopNode stop = parser.parse(false).iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return new S;", stop.toString()); } @@ -433,7 +433,7 @@ while( -arg ) while(1) arg = arg+ptr.v; """); - StopNode stop = parser.parse(false).iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("Stop[ return 0; return 0; ]", stop.toString()); } @@ -451,7 +451,7 @@ while (arg) { } return i; """); - StopNode stop = parser.parse(false).iterate(false); + StopNode stop = parser.parse().iterate(false); assertEquals("return .f;", stop.toString()); } @@ -471,7 +471,7 @@ while(arg) { } return arg; """); - StopNode stop = parser.parse(false).iterate(false); + StopNode stop = parser.parse().iterate(false); assertEquals("return Phi(Loop15,arg,Phi(Region37,.f,0));", stop.toString()); } @@ -489,7 +489,7 @@ if (arg) { } return v; """); - StopNode stop = parser.parse(false).iterate(false); + StopNode stop = parser.parse().iterate(false); assertEquals("return new S;", stop.toString()); } @@ -508,7 +508,7 @@ while (arg > 0) { } return v; """); - StopNode stop = parser.parse(false).iterate(true); + StopNode stop = parser.parse().iterate(); //assertEquals("return new S;", stop.toString()); } @@ -522,7 +522,7 @@ if( arg==0 ) s.f = 1; else if (arg == 1) s.f = 1; return s.f; """); - StopNode stop = parser.parse(false).iterate(true); + StopNode stop = parser.parse().iterate(); assertEquals("return Phi(Region37,1,Phi(Region35,1,0));", stop.toString()); assertEquals(1L, Evaluator.evaluate(stop, 0)); assertEquals(1L, Evaluator.evaluate(stop, 1)); diff --git a/chapter14/src/test/java/com/seaofnodes/simple/Chapter12Test.java b/chapter14/src/test/java/com/seaofnodes/simple/Chapter12Test.java index 63951a37..972118be 100644 --- a/chapter14/src/test/java/com/seaofnodes/simple/Chapter12Test.java +++ b/chapter14/src/test/java/com/seaofnodes/simple/Chapter12Test.java @@ -14,7 +14,7 @@ public class Chapter12Test { """ return 3.14; """); - StopNode stop = parser.parse(false).iterate(false); + StopNode stop = parser.parse().iterate(false); assertEquals("return 3.14;", stop.toString()); assertEquals(3.14, Evaluator.evaluate(stop, 0)); } @@ -25,7 +25,7 @@ return 3.14; """ return 3.14; """); - StopNode stop = parser.parse(false).iterate(false); + StopNode stop = parser.parse().iterate(false); assertEquals("return 3.14;", stop.toString()); assertEquals(3.14, Evaluator.evaluate(stop, 0)); } @@ -42,7 +42,7 @@ while( 1 ) { } return guess; """); - StopNode stop = parser.parse(false).iterate(false); + StopNode stop = parser.parse().iterate(false); assertEquals("return Phi(Loop9,(flt)arg,(((ToFloat/Phi_guess)+Phi_guess)/2.0));", stop.toString()); assertEquals(3.0, Evaluator.evaluate(stop, 9)); assertEquals(1.414213562373095, Evaluator.evaluate(stop, 2)); @@ -55,7 +55,7 @@ return guess; flt x = arg; return x+1==x; """); - StopNode stop = parser.parse(false).iterate(false); + StopNode stop = parser.parse().iterate(false); assertEquals("return ((flt)arg==(ToFloat+1.0));", stop.toString()); assertEquals(0L, Evaluator.evaluate(stop, 1)); } diff --git a/chapter14/src/test/java/com/seaofnodes/simple/Chapter13Test.java b/chapter14/src/test/java/com/seaofnodes/simple/Chapter13Test.java index 11ab5621..62191459 100644 --- a/chapter14/src/test/java/com/seaofnodes/simple/Chapter13Test.java +++ b/chapter14/src/test/java/com/seaofnodes/simple/Chapter13Test.java @@ -14,7 +14,7 @@ public class Chapter13Test { """ return 3.14; """); - StopNode stop = parser.parse(false).iterate(false); + StopNode stop = parser.parse().iterate(false); assertEquals("return 3.14;", stop.toString()); assertEquals(3.14, Evaluator.evaluate(stop, 0)); } @@ -34,7 +34,7 @@ while( arg ) { } return head.next.i; """); - try { parser.parse(true).iterate(true); fail(); } + try { parser.parse().iterate(); fail(); } catch( Exception e ) { assertEquals("Might be null accessing 'next'",e.getMessage()); } } @@ -56,7 +56,7 @@ LLI? next = head.next; if( next==null ) return 1; return next.i; """); - StopNode stop = parser.parse(false).iterate(false); + StopNode stop = parser.parse().iterate(false); assertEquals("Stop[ return 0; return 1; return .i; ]", stop.toString()); assertEquals(2L, Evaluator.evaluate(stop, 3)); } @@ -75,7 +75,7 @@ i0.f = f0; f0.i = i0; return f0.i.f.i.i; """); - StopNode stop = parser.parse(false).iterate(false); + StopNode stop = parser.parse().iterate(false); assertEquals("return 17;", stop.toString()); } @@ -87,7 +87,7 @@ struct N { N next; int i; } N n = new N; return n.next; """); - StopNode stop = parser.parse(false).iterate(false); + StopNode stop = parser.parse().iterate(false); assertEquals("return null;", stop.toString()); } @@ -100,7 +100,7 @@ N n = new N; n.next = new N; return n.next; """); - StopNode stop = parser.parse(false).iterate(false); + StopNode stop = parser.parse().iterate(false); assertEquals("return new N;", stop.toString()); } @@ -113,7 +113,7 @@ N n = new N; n.next = null; return n.next; """); - try { parser.parse(true).iterate(true); fail(); } + try { parser.parse().iterate(); fail(); } catch( Exception e ) { assertEquals("Cannot store null into field *N next",e.getMessage()); } } @@ -126,7 +126,7 @@ N n = new N; n.i = 3.14; return n.i; """); - try { parser.parse(true).iterate(true); fail(); } + try { parser.parse().iterate(); fail(); } catch( Exception e ) { assertEquals("Cannot store 3.14 into field int i",e.getMessage()); } } @@ -136,7 +136,7 @@ return n.i; """ struct S{}; """); - StopNode stop = parser.parse(false).iterate(false); + StopNode stop = parser.parse().iterate(false); assertEquals("return 0;", stop.toString()); assertEquals(0L, Evaluator.evaluate(stop, 0)); } @@ -148,7 +148,7 @@ struct S{}; struct S1 { S2 s; } return new S2; """); - try { parser.parse(true).iterate(true); fail(); } + try { parser.parse().iterate(); fail(); } catch( Exception e ) { assertEquals("Unknown struct type 'S2'",e.getMessage()); } } @@ -160,7 +160,7 @@ struct S1 { S2? s; } struct S2 { int x; } return new S1.s=new S2; """); - StopNode stop = parser.parse(false).iterate(false); + StopNode stop = parser.parse().iterate(false); assertEquals("return new S1;", stop.toString()); } } diff --git a/chapter14/src/test/java/com/seaofnodes/simple/Chapter14Test.java b/chapter14/src/test/java/com/seaofnodes/simple/Chapter14Test.java index 0464f3ec..fcb7fa24 100644 --- a/chapter14/src/test/java/com/seaofnodes/simple/Chapter14Test.java +++ b/chapter14/src/test/java/com/seaofnodes/simple/Chapter14Test.java @@ -15,7 +15,7 @@ public class Chapter14Test { """ return 3.14; """); - StopNode stop = parser.parse(false).iterate(true); + StopNode stop = parser.parse(false).iterate(); assertEquals("return 3.14;", stop.toString()); assertEquals(3.14, Evaluator.evaluate(stop, 0)); } @@ -151,7 +151,7 @@ int j = -i; // Negating Long.MIN_VALUE wraps, cannot constant fold if (arg) j = 1; return j; """); - StopNode stop = parser.parse(false).iterate(true); + StopNode stop = parser.parse(false).iterate(); assertEquals("return Phi(Region28,1,(-((arg&9223372036854775807)+-9223372036854775808)));", stop.toString()); assertEquals(-9223372036854775808L, Evaluator.evaluate(stop, 0)); assertEquals(1L, Evaluator.evaluate(stop, 1)); @@ -163,7 +163,7 @@ return j; """ return (arg >>> 1)==0; """); - StopNode stop = parser.parse(false).iterate(true); + StopNode stop = parser.parse(false).iterate(); assertEquals("return (!(arg>>>1));", stop.toString()); assertEquals(1L, Evaluator.evaluate(stop, 0)); assertEquals(1L, Evaluator.evaluate(stop, 1)); @@ -189,7 +189,7 @@ flt f = arg; arg = f & 0; return arg; """); - try { parser.parse(true).iterate(true); fail(); } + try { parser.parse().iterate(); fail(); } catch( Exception e ) { assertEquals("Cannot '&' FltBot",e.getMessage()); } } @@ -263,7 +263,7 @@ if (arg&7) i=3; else i=2; return (arg == i) == 1; """); - StopNode stop = parser.parse(false).iterate(true); + StopNode stop = parser.parse(false).iterate(); assertEquals("return (arg==Phi(Region18,3,2));", stop.toString()); assertEquals(0L, Evaluator.evaluate(stop, 0)); assertEquals(0L, Evaluator.evaluate(stop, 1)); @@ -282,7 +282,7 @@ while (1) { return i + -1; } """); - StopNode stop = parser.parse(false).iterate(true); + StopNode stop = parser.parse(false).iterate(); assertEquals("return (Phi(Region43,((arg&3)+9223372036854775804),((arg&7)+9223372036854775800))+-1);", stop.toString()); assertEquals(0x7FFFFFFFFFFFFFF7L, Evaluator.evaluate(stop, 0)); assertEquals(0x7FFFFFFFFFFFFFFCL, Evaluator.evaluate(stop, 1)); @@ -309,7 +309,7 @@ f32 ff32 = 3.141592653589793; if( ff32 != 3.1415927410125732) return 5; return 0; """); - StopNode stop = parser.parse(false).iterate(false); + StopNode stop = parser.parse().iterate(false); assertEquals("return 0;", stop.toString()); assertEquals(0L, Evaluator.evaluate(stop, 0)); } diff --git a/chapter14/src/test/java/com/seaofnodes/simple/SchedulerTest.java b/chapter14/src/test/java/com/seaofnodes/simple/SchedulerTest.java index e5961815..853999b1 100644 --- a/chapter14/src/test/java/com/seaofnodes/simple/SchedulerTest.java +++ b/chapter14/src/test/java/com/seaofnodes/simple/SchedulerTest.java @@ -31,7 +31,7 @@ if (arg) v.f=1; return i; """); StopNode._disablePeephole = true; - StopNode stop = parser.parse(true);//.iterate(true); + StopNode stop = parser.parse();//.iterate(); var eval = new Evaluator(stop); assertEquals(2L, eval.evaluate(1, 10)); } @@ -46,7 +46,7 @@ S v0=new S; if(arg) v0.f=1; return v0; """); - StopNode stop = parser.parse(false).iterate(true); + StopNode stop = parser.parse().iterate(); var eval = new Evaluator(stop); assertObj(eval.evaluate(0, 10), "S", 0L); assertObj(eval.evaluate(1, 10), "S", 1L); @@ -65,7 +65,7 @@ i=v.f; if (arg) v.f=1; return i; """); - StopNode stop = parser.parse(false).iterate(true); + StopNode stop = parser.parse().iterate(); var eval = new Evaluator(stop); assertEquals(2L, eval.evaluate(0, 10)); assertEquals(2L, eval.evaluate(1, 10)); |
