diff options
| author | Cliff Click <cliffc@acm.org> | 2026-09-13 16:41:28 -0700 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2026-09-13 16:41:28 -0700 |
| commit | 56889e162ce25b16978708c6037ddf2961e89546 (patch) | |
| tree | a6edf3907e77036ce7fdf11ed0ddb6632508f449 /chapter25/src/test/java/com/seaofnodes | |
| parent | cdc1ac01c3935587f4c11140d8afb22bec0e7581 (diff) | |
| download | Simple-56889e162ce25b16978708c6037ddf2961e89546.tar.gz Simple-56889e162ce25b16978708c6037ddf2961e89546.zip | |
Do BulkMemPhi splits one by one
Diffstat (limited to 'chapter25/src/test/java/com/seaofnodes')
| -rw-r--r-- | chapter25/src/test/java/com/seaofnodes/simple/Chapter25Test.java | 70 | ||||
| -rw-r--r-- | chapter25/src/test/java/com/seaofnodes/simple/FuzzerWrap.java | 4 |
2 files changed, 13 insertions, 61 deletions
diff --git a/chapter25/src/test/java/com/seaofnodes/simple/Chapter25Test.java b/chapter25/src/test/java/com/seaofnodes/simple/Chapter25Test.java index a393a623..2966ec04 100644 --- a/chapter25/src/test/java/com/seaofnodes/simple/Chapter25Test.java +++ b/chapter25/src/test/java/com/seaofnodes/simple/Chapter25Test.java @@ -21,68 +21,16 @@ public class Chapter25Test { @Ignore @Test public void testJig() { - String src = -""" -if(3) arg=arg^arg; -else return arg; -u8 v0=arg^--arg; -if(v0<=1) return 37; -else { - arg=arg; - while(3) { - arg=v0==++arg; - arg=v0; - break; + String src =" while(1?!0:arg++) {"; + String src2 = """ +int v0=0^0; + while(1) { + arg=v0++&0; + int v2=0; + if(v0) + if(v0) v2=0; } -} -arg=arg; -struct IC95xuj { - bool v1; - u8 v2; - u8 He; -}; -if(v0<new IC95xuj.He) while(new IC95xuj.He<!new IC95xuj.He) { - arg=new IC95xuj.He; - if(new IC95xuj.v1) while(new IC95xuj.v1) if(0&&new IC95xuj.v2) continue; - else v0=false?new IC95xuj.v2:new IC95xuj.v1&2; - else if(new IC95xuj.v2!=3>-++arg*arg) while(false + new IC95xuj.v2) arg=-arg; - else continue; - v0=new IC95xuj.v2; - arg=-new IC95xuj.He; - flt v3=-arg||---v0; - IC95xuj !v0=new IC95xuj; - v3=arg; - } -else { - v0=-new IC95xuj.He; - v0=---v0/---v0+new IC95xuj.He; - return -new IC95xuj.v1|(++arg>arg?new IC95xuj.He:++v0); -} -while(-new IC95xuj.He*arg<=--v0||106) return new IC95xuj; -while(new IC95xuj.v1<new IC95xuj.v2) { - if(new IC95xuj.v1||v0) break; - else { - int arg=new IC95xuj.v1; - while(arg<new IC95xuj.v1) { - arg=arg+0; - while(new IC95xuj.v2+!new IC95xuj.He) - continue; - arg=0==new IC95xuj; - } - } - v0=1&new IC95xuj.He&new IC95xuj.He^arg; - v0=arg||--v0<--new IC95xuj.v2|3?new IC95xuj.v2&-new IC95xuj.v2:new IC95xuj.He; - v0=4; - break; -} -if(new IC95xuj.He) { - arg=0; - return v0; -} -else - return new IC95xuj; - -"""; + """; CodeGen code = new CodeGen(src).driver(CodeGen.Phase.TypeCheck); assertEquals("2",Eval2.eval(code,0)); } diff --git a/chapter25/src/test/java/com/seaofnodes/simple/FuzzerWrap.java b/chapter25/src/test/java/com/seaofnodes/simple/FuzzerWrap.java index 51747fe4..a4532eb2 100644 --- a/chapter25/src/test/java/com/seaofnodes/simple/FuzzerWrap.java +++ b/chapter25/src/test/java/com/seaofnodes/simple/FuzzerWrap.java @@ -19,9 +19,13 @@ public class FuzzerWrap { -5037182906211190034L, // dead Guard control -6359653295501938199L, // monotonicity, escape is dead 6506797708065910879L, // missing ModeNode._mode is optimistic + 650692970082394944L, // recursive bulk mem split }; private static final long[] OPEN_FAILING_SEEDS = { + 8335100609598232836L, + 2520958273643234516L, + -3772838984504063325L, }; |
