summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2024-07-30 07:16:02 -0700
committerDibyendu Majumdar <dibyendumajumdar@users.noreply.github.com>2024-08-05 23:28:33 +0100
commit2b35a316dbafd1aa27b2b49aeb868e1f357362a9 (patch)
tree76f4c57330490367a9a5dcd3a89778e25c7eb98c
parent0269769b929a07f8057c632bd7d645185649359f (diff)
downloadSimple-2b35a316dbafd1aa27b2b49aeb868e1f357362a9.tar.gz
Simple-2b35a316dbafd1aa27b2b49aeb868e1f357362a9.zip
Fuzzer nit picks
-rw-r--r--chapter12/src/main/java/com/seaofnodes/simple/node/AddNode.java1
-rw-r--r--chapter12/src/main/java/com/seaofnodes/simple/node/MinusFNode.java2
-rw-r--r--chapter12/src/test/java/com/seaofnodes/simple/Chapter12Test.java9
3 files changed, 4 insertions, 8 deletions
diff --git a/chapter12/src/main/java/com/seaofnodes/simple/node/AddNode.java b/chapter12/src/main/java/com/seaofnodes/simple/node/AddNode.java
index 114e62c9..48350957 100644
--- a/chapter12/src/main/java/com/seaofnodes/simple/node/AddNode.java
+++ b/chapter12/src/main/java/com/seaofnodes/simple/node/AddNode.java
@@ -106,6 +106,7 @@ public class AddNode extends Node {
static Node phiCon(Node op, boolean rotate) {
Node lhs = op.in(1);
Node rhs = op.in(2);
+ if( rhs._type==TypeInteger.TOP ) return null;
// LHS is either a Phi of constants, or another op with Phi of constants
PhiNode lphi = pcon(lhs,op);
if( rotate && lphi==null && lhs.nIns() > 2 ) {
diff --git a/chapter12/src/main/java/com/seaofnodes/simple/node/MinusFNode.java b/chapter12/src/main/java/com/seaofnodes/simple/node/MinusFNode.java
index 0853729d..9727f58b 100644
--- a/chapter12/src/main/java/com/seaofnodes/simple/node/MinusFNode.java
+++ b/chapter12/src/main/java/com/seaofnodes/simple/node/MinusFNode.java
@@ -22,7 +22,7 @@ public class MinusFNode extends Node {
public Type compute() {
if (in(1)._type instanceof TypeFloat i0)
return i0.isConstant() ? TypeFloat.constant(-i0.value()) : i0;
- return TypeFloat.TOP.meet(in(1)._type);
+ return TypeFloat.BOT;
}
@Override
diff --git a/chapter12/src/test/java/com/seaofnodes/simple/Chapter12Test.java b/chapter12/src/test/java/com/seaofnodes/simple/Chapter12Test.java
index 253a61f0..af8fdfe9 100644
--- a/chapter12/src/test/java/com/seaofnodes/simple/Chapter12Test.java
+++ b/chapter12/src/test/java/com/seaofnodes/simple/Chapter12Test.java
@@ -13,15 +13,10 @@ public class Chapter12Test {
public void testJig() {
Parser parser = new Parser(
"""
-flt x = 3.14;
-while( arg ) {
- x = 1;
- arg = arg-1;
-}
-return x;
+return 3.14;
""");
StopNode stop = parser.parse(false).iterate(false);
- assertEquals("return Phi(Loop9,3.14,1.0);", stop.toString());
+ assertEquals("return 3.14;", stop.toString());
assertEquals(3.14, Evaluator.evaluate(stop, 0));
}