diff options
| author | Cliff Click <cliffc@acm.org> | 2024-10-05 10:04:04 -0700 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2024-10-06 08:56:22 -0700 |
| commit | ea41e5ca82736ad8380f856c3901cb0efb65e957 (patch) | |
| tree | 69e5f14176b67e706fb2935154519d8b3f256a94 | |
| parent | f92f34f687e8d3ff194f7d42e0235e1463e3c2ef (diff) | |
| download | Simple-ea41e5ca82736ad8380f856c3901cb0efb65e957.tar.gz Simple-ea41e5ca82736ad8380f856c3901cb0efb65e957.zip | |
Clean up del code
3 files changed, 7 insertions, 13 deletions
diff --git a/chapter15/src/main/java/com/seaofnodes/simple/IRPrinter.java b/chapter15/src/main/java/com/seaofnodes/simple/IRPrinter.java index aa84b25b..418cda29 100644 --- a/chapter15/src/main/java/com/seaofnodes/simple/IRPrinter.java +++ b/chapter15/src/main/java/com/seaofnodes/simple/IRPrinter.java @@ -176,8 +176,8 @@ public class IRPrinter { _bs.set(n._nid); } void del(int idx) { - Node n = Utils.del(_bfs, idx); - _bs.clear(n._nid); + _bs.clear(_bfs.get(idx)._nid); + Utils.del(_bfs, idx); } boolean any_visited( Node n ) { for( Node def : n._inputs ) diff --git a/chapter15/src/main/java/com/seaofnodes/simple/Utils.java b/chapter15/src/main/java/com/seaofnodes/simple/Utils.java index f3ac25b1..1346c3ea 100644 --- a/chapter15/src/main/java/com/seaofnodes/simple/Utils.java +++ b/chapter15/src/main/java/com/seaofnodes/simple/Utils.java @@ -13,14 +13,9 @@ public class Utils { * @param i element to be removed * @return element removed */ - public static <E> E del(ArrayList<E> array, int i) { - if ( i >= 0 && i < array.size() ) { - E tmp = array.get(i); - E last = array.removeLast(); - if (i < array.size()) array.set(i, last); - return tmp; - } - return null; + public static <E> void del(ArrayList<E> array, int i) { + E last = array.removeLast(); + if (i < array.size()) array.set(i, last); } /** diff --git a/chapter15/src/main/java/com/seaofnodes/simple/node/Node.java b/chapter15/src/main/java/com/seaofnodes/simple/node/Node.java index c3a0f20f..e4b887a0 100644 --- a/chapter15/src/main/java/com/seaofnodes/simple/node/Node.java +++ b/chapter15/src/main/java/com/seaofnodes/simple/node/Node.java @@ -179,11 +179,10 @@ public abstract class Node implements OutNode { Node delDef(int idx) { unlock(); Node old_def = in(idx); - if( old_def != null && // If the old def exists, remove a def->use edge - old_def.delUse(this) ) // If we removed the last use, the old def is now dead + Utils.del(_inputs, idx); + if( old_def.delUse(this) ) // If we removed the last use, the old def is now dead old_def.kill(); // Kill old def old_def.moveDepsToWorklist(); - Utils.del(_inputs, idx); return this; } |
