summaryrefslogtreecommitdiff
path: root/src/test/java/com/seaofnodes/simple/Chapter08Test.java
diff options
context:
space:
mode:
authorThalia Archibald <thalia@archibald.dev>2024-03-03 17:55:47 +0000
committerThalia Archibald <thalia@archibald.dev>2024-10-23 17:51:09 -0700
commit9ed409df4516e0089afbc7d5ccf9b029d431be04 (patch)
treec0ae90716b9551dc0e58d0ec52f5e4e91bb1152f /src/test/java/com/seaofnodes/simple/Chapter08Test.java
parent425f05826799e9da06a630187d2ad05c656266a1 (diff)
downloadSimple-linear-chapter09.tar.gz
Simple-linear-chapter09.zip
Chapter 9: Global Value Numbering and Iterative Peepholeslinear-chapter09
Co-authored-by: Cliff Click <cliffc@acm.org> Co-authored-by: XmiliaH <45106915+XmiliaH@users.noreply.github.com> Co-authored-by: Robert Obkircher <robert.obkircher@gmail.com> Co-authored-by: Dibyendu Majumdar <mobile@majumdar.org.uk> Co-authored-by: Darrick Wiebe <darrickw@untether.ai>
Diffstat (limited to 'src/test/java/com/seaofnodes/simple/Chapter08Test.java')
-rw-r--r--src/test/java/com/seaofnodes/simple/Chapter08Test.java36
1 files changed, 13 insertions, 23 deletions
diff --git a/src/test/java/com/seaofnodes/simple/Chapter08Test.java b/src/test/java/com/seaofnodes/simple/Chapter08Test.java
index 5d9d1545..cea6dd0f 100644
--- a/src/test/java/com/seaofnodes/simple/Chapter08Test.java
+++ b/src/test/java/com/seaofnodes/simple/Chapter08Test.java
@@ -4,22 +4,12 @@ import com.seaofnodes.simple.node.*;
import com.seaofnodes.simple.type.TypeInteger;
import org.junit.Assert;
import org.junit.Test;
-import org.junit.Ignore;
import static org.junit.Assert.*;
public class Chapter08Test {
@Test
- @Ignore
- public void testJig() {
- Parser parser = new Parser("""
-// Insert test case here
-""");
- StopNode stop = parser.parse();
- }
-
- @Test
public void testEx6() {
Parser parser = new Parser(
"""
@@ -32,7 +22,7 @@ while(arg < 10) {
}
return arg;
""");
- StopNode stop = parser.parse();
+ StopNode stop = parser.parse().iterate();
assertEquals("return Phi(Region36,Phi(Region25,Phi(Loop6,arg,(Phi_arg+1)),Add),Add);", stop.toString());
assertTrue(stop.ret().ctrl() instanceof RegionNode);
Assert.assertEquals(5, GraphEvaluator.evaluate(stop, 1));
@@ -55,7 +45,7 @@ while(arg < 10) {
}
return a;
""");
- StopNode stop = parser.parse();
+ StopNode stop = parser.parse().iterate();
assertEquals("return Phi(Loop7,1,Phi(Region42,Phi_a,(Phi_a+1)));", stop.toString());
assertTrue(stop.ret().ctrl() instanceof ProjNode);
}
@@ -74,7 +64,7 @@ while(arg < 10) {
}
return arg;
""");
- StopNode stop = parser.parse();
+ StopNode stop = parser.parse().iterate();
assertEquals("return Phi(Region34,Phi(Loop6,arg,(Phi_arg+1)),Add);", stop.toString());
assertTrue(stop.ret().ctrl() instanceof RegionNode);
}
@@ -90,7 +80,7 @@ while(arg < 10) {
}
return arg;
""");
- StopNode stop = parser.parse();
+ StopNode stop = parser.parse().iterate();
assertEquals("return Phi(Region25,Phi(Loop6,arg,(Phi_arg+1)),Add);", stop.toString());
assertTrue(stop.ret().ctrl() instanceof RegionNode);
}
@@ -109,7 +99,7 @@ while(arg < 10) {
}
return arg;
""");
- StopNode stop = parser.parse();
+ StopNode stop = parser.parse().iterate();
assertEquals("return Phi(Loop6,arg,(Phi_arg+1));", stop.toString());
assertTrue(stop.ret().ctrl() instanceof ProjNode);
}
@@ -126,7 +116,7 @@ while(arg < 10) {
}
return arg;
""");
- StopNode stop = parser.parse();
+ StopNode stop = parser.parse().iterate();
assertEquals("return Phi(Loop6,arg,(Phi_arg+1));", stop.toString());
assertTrue(stop.ret().ctrl() instanceof ProjNode);
}
@@ -142,15 +132,15 @@ while( arg < 10 ) {
}
return arg;
""");
- StopNode stop = parser.parse();
+ StopNode stop = parser.parse().iterate();
assertEquals("return arg;", stop.toString());
}
@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();
- assertEquals("Stop[ return 0; return 0; ]", stop.toString());
+ StopNode stop = parser.parse().iterate();
+ assertEquals("return 0;", stop.toString());
}
@Test
@@ -177,7 +167,7 @@ while(arg < 10) {
}
return arg;
""");
- StopNode stop = parser.parse();
+ StopNode stop = parser.parse().iterate();
assertEquals("return arg;", stop.toString());
}
@@ -194,7 +184,7 @@ while(arg < 10) {
}
return a;
""");
- StopNode stop = parser.parse();
+ StopNode stop = parser.parse().iterate();
assertEquals("return Phi(Region28,Phi(Loop7,1,(Phi_a+1)),Add);", stop.toString());
assertTrue(stop.ret().ctrl() instanceof RegionNode);
}
@@ -210,9 +200,9 @@ while(1) {
}
return a;
""");
- StopNode stop = parser.parse();
+ StopNode stop = parser.parse().iterate();
assertEquals("return (Phi(Loop7,1,Add)+1);", stop.toString());
- assertTrue(stop.ret().ctrl() instanceof RegionNode);
+ assertTrue(stop.ret().ctrl() instanceof ProjNode prj && prj._idx==1 );
}
}