From ce4c47a5bec87ca404fbb49a2d91f34ab6f4e545 Mon Sep 17 00:00:00 2001 From: Cliff Click Date: Thu, 12 Sep 2024 10:11:51 -0700 Subject: Fix GCM of CSE stores Stop CSE of stores. Backports to ch11,12,13,14 --- .../test/java/com/seaofnodes/simple/Chapter11Test.java | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'chapter12/src/test/java') diff --git a/chapter12/src/test/java/com/seaofnodes/simple/Chapter11Test.java b/chapter12/src/test/java/com/seaofnodes/simple/Chapter11Test.java index 6c1f7938..dfb1786b 100644 --- a/chapter12/src/test/java/com/seaofnodes/simple/Chapter11Test.java +++ b/chapter12/src/test/java/com/seaofnodes/simple/Chapter11Test.java @@ -511,4 +511,21 @@ return v; StopNode stop = parser.parse(false).iterate(true); //assertEquals("return new S;", stop.toString()); } + + @Test + public void testSplit() { + Parser parser = new Parser( + """ +struct S { int f; } +S s = new S; +if( arg==0 ) s.f = 1; +else if (arg == 1) s.f = 1; +return s.f; +"""); + StopNode stop = parser.parse(false).iterate(true); + assertEquals("return Phi(Region35,1,Phi(Region33,1,0));", stop.toString()); + assertEquals(1L, Evaluator.evaluate(stop, 0)); + assertEquals(1L, Evaluator.evaluate(stop, 1)); + assertEquals(0L, Evaluator.evaluate(stop, 2)); + } } -- cgit v1.2.3