summaryrefslogtreecommitdiff
path: root/src/test/java/com/seaofnodes/simple/PhaseTest.java
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2025-06-13 15:42:08 -0700
committerCliff Click <cliffc@acm.org>2026-10-24 15:56:44 -0700
commit89dd0a79da85b2c7102b7c8918a1466e6238fe94 (patch)
treecfa3d1457e9c40ad79ae78ded15c7c2ff286d79d /src/test/java/com/seaofnodes/simple/PhaseTest.java
parent8309071562b63f77a15425ab2146e05dbcb5acfd (diff)
downloadSimple-linear-chapter24a.tar.gz
Simple-linear-chapter24a.zip
Chapter 24a: SCCP Within a Functionlinear-chapter24a
Co-authored-by: Tamás Hadházy <85063808+Hels15@users.noreply.github.com> Co-authored-by: Hsiang-Ying Fu <66062782+fuhsnn@users.noreply.github.com> Co-authored-by: fuhsnn <66062782+fuhsnn@users.noreply.github.com> Co-authored-by: Symious <14933944+symious@users.noreply.github.com> Co-authored-by: Jun Kawasaki <jun784@gmail.com> Co-authored-by: Hadházy Tamás <helsgithub15@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'src/test/java/com/seaofnodes/simple/PhaseTest.java')
-rw-r--r--src/test/java/com/seaofnodes/simple/PhaseTest.java16
1 files changed, 15 insertions, 1 deletions
diff --git a/src/test/java/com/seaofnodes/simple/PhaseTest.java b/src/test/java/com/seaofnodes/simple/PhaseTest.java
index 885889a8..899f42fe 100644
--- a/src/test/java/com/seaofnodes/simple/PhaseTest.java
+++ b/src/test/java/com/seaofnodes/simple/PhaseTest.java
@@ -27,7 +27,7 @@ public class PhaseTest {
code.driver(Phase.LoopTree);
assertEquals(Phase.LoopTree,code._phase);
code.driver(Phase.LocalSched);
- assertEquals("Parse Iter FinalizeIR TypeCheck LoopTree Schedule LocalSched",String.join(" ",phases));
+ assertEquals("Parse Iter Opto IterPostOpto FinalizeIR TypeCheck LoopTree Schedule LocalSched",String.join(" ",phases));
assertEquals("45",Eval2.eval(code,10));
}
@@ -39,4 +39,18 @@ public class PhaseTest {
CodeGen direct = new CodeGen(SRC).driver(Phase.Encoding,"x86_64_v2","SystemV");
assertArrayEquals(bits,direct._encoding._bits.toByteArray());
}
+
+ @Test public void testOptoRequiresIter() {
+ CodeGen code = new CodeGen(SRC).parse();
+ try {
+ code.opto();
+ fail("Opto must not implicitly run Iter");
+ } catch( AssertionError expected ) {
+ assertEquals("Cannot run Opto after Parse",expected.getMessage());
+ }
+ code.iter().opto();
+ assertEquals(Phase.Opto,code._phase);
+ code.driver(Phase.LocalSched);
+ assertEquals("45",Eval2.eval(code,10));
+ }
}