summaryrefslogtreecommitdiff
path: root/chapter05/src/main/java/com/seaofnodes
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2023-10-30 14:07:53 -0700
committerDibyendu Majumdar <dibyendumajumdar@users.noreply.github.com>2023-11-01 18:56:50 +0000
commit29aea4487d70dfc08eb3afb84481c5e419aec33c (patch)
tree135d56645d333e64acb1f7d591d948f23a70a04e /chapter05/src/main/java/com/seaofnodes
parent9f38300fdeb866cc41efec700bd4a3f641dd4c2f (diff)
downloadSimple-29aea4487d70dfc08eb3afb84481c5e419aec33c.tar.gz
Simple-29aea4487d70dfc08eb3afb84481c5e419aec33c.zip
Remove most TODO's
Make an official TODO which can't be hit in the current Chapter, but future binary ops might hit it.
Diffstat (limited to 'chapter05/src/main/java/com/seaofnodes')
-rw-r--r--chapter05/src/main/java/com/seaofnodes/simple/Parser.java2
-rw-r--r--chapter05/src/main/java/com/seaofnodes/simple/node/AddNode.java6
-rw-r--r--chapter05/src/main/java/com/seaofnodes/simple/node/DivNode.java2
-rw-r--r--chapter05/src/main/java/com/seaofnodes/simple/node/MulNode.java1
-rw-r--r--chapter05/src/main/java/com/seaofnodes/simple/node/Node.java3
-rw-r--r--chapter05/src/main/java/com/seaofnodes/simple/node/SubNode.java1
6 files changed, 9 insertions, 6 deletions
diff --git a/chapter05/src/main/java/com/seaofnodes/simple/Parser.java b/chapter05/src/main/java/com/seaofnodes/simple/Parser.java
index 70e093f3..ca040fd0 100644
--- a/chapter05/src/main/java/com/seaofnodes/simple/Parser.java
+++ b/chapter05/src/main/java/com/seaofnodes/simple/Parser.java
@@ -511,4 +511,6 @@ public class Parser {
}
}
+ public static RuntimeException TODO() { return TODO("Not yet implemented"); }
+ public static RuntimeException TODO(String msg) { return new RuntimeException(msg); }
}
diff --git a/chapter05/src/main/java/com/seaofnodes/simple/node/AddNode.java b/chapter05/src/main/java/com/seaofnodes/simple/node/AddNode.java
index e4ed83a6..f2b93b2e 100644
--- a/chapter05/src/main/java/com/seaofnodes/simple/node/AddNode.java
+++ b/chapter05/src/main/java/com/seaofnodes/simple/node/AddNode.java
@@ -112,9 +112,6 @@ public class AddNode extends Node {
if( lo instanceof PhiNode && lo.all_cons() ) return false;
if( hi instanceof PhiNode && hi.all_cons() ) return true ;
- if( lo instanceof MulNode ) throw new RuntimeException("TODO");
- if( hi instanceof MulNode ) throw new RuntimeException("TODO");
-
if( lo instanceof PhiNode && !(hi instanceof PhiNode) ) return true;
if( hi instanceof PhiNode && !(lo instanceof PhiNode) ) return false;
@@ -122,6 +119,5 @@ public class AddNode extends Node {
return lo._nid > hi._nid;
}
- @Override
- Node copy(Node lhs, Node rhs) { return new AddNode(lhs,rhs); }
+ @Override Node copy(Node lhs, Node rhs) { return new AddNode(lhs,rhs); }
}
diff --git a/chapter05/src/main/java/com/seaofnodes/simple/node/DivNode.java b/chapter05/src/main/java/com/seaofnodes/simple/node/DivNode.java
index ae87deac..489e7275 100644
--- a/chapter05/src/main/java/com/seaofnodes/simple/node/DivNode.java
+++ b/chapter05/src/main/java/com/seaofnodes/simple/node/DivNode.java
@@ -33,4 +33,6 @@ public class DivNode extends Node {
@Override
public Node idealize() { return null; }
+
+ @Override Node copy(Node lhs, Node rhs) { return new AddNode(lhs,rhs); }
}
diff --git a/chapter05/src/main/java/com/seaofnodes/simple/node/MulNode.java b/chapter05/src/main/java/com/seaofnodes/simple/node/MulNode.java
index 5f6c1ad8..9962c445 100644
--- a/chapter05/src/main/java/com/seaofnodes/simple/node/MulNode.java
+++ b/chapter05/src/main/java/com/seaofnodes/simple/node/MulNode.java
@@ -47,4 +47,5 @@ public class MulNode extends Node {
return null;
}
+ @Override Node copy(Node lhs, Node rhs) { return new MulNode(lhs,rhs); }
}
diff --git a/chapter05/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter05/src/main/java/com/seaofnodes/simple/node/Node.java
index db8f5680..2d8a14d4 100644
--- a/chapter05/src/main/java/com/seaofnodes/simple/node/Node.java
+++ b/chapter05/src/main/java/com/seaofnodes/simple/node/Node.java
@@ -1,5 +1,6 @@
package com.seaofnodes.simple.node;
+import com.seaofnodes.simple.Parser;
import com.seaofnodes.simple.type.Type;
import java.util.*;
@@ -352,7 +353,7 @@ public abstract class Node {
// Make a shallow copy (same class) of this Node, with given inputs and
// empty outputs and a new Node ID. The original inputs are ignored.
// Does not need to be implemented in isCFG() nodes.
- Node copy(Node lhs, Node rhs) { return null; }
+ Node copy(Node lhs, Node rhs) { throw Parser.TODO("Binary ops need to implement copy"); }
/**
* Used to allow repeating tests in the same JVM. This just resets the
diff --git a/chapter05/src/main/java/com/seaofnodes/simple/node/SubNode.java b/chapter05/src/main/java/com/seaofnodes/simple/node/SubNode.java
index 42ddc1c1..6bfb42be 100644
--- a/chapter05/src/main/java/com/seaofnodes/simple/node/SubNode.java
+++ b/chapter05/src/main/java/com/seaofnodes/simple/node/SubNode.java
@@ -38,4 +38,5 @@ public class SubNode extends Node {
return null;
}
+ @Override Node copy(Node lhs, Node rhs) { return new SubNode(lhs,rhs); }
}