From 033c08926a5d597058fff0e8fd605bcd238d36a0 Mon Sep 17 00:00:00 2001 From: Cliff Click Date: Sat, 26 Apr 2025 13:39:40 -0700 Subject: A series of unrelated minor bugfixes --- chapter22/src/main/java/com/seaofnodes/simple/codegen/CodeGen.java | 2 -- chapter22/src/main/java/com/seaofnodes/simple/node/CallEndNode.java | 1 - chapter22/src/main/java/com/seaofnodes/simple/node/PhiNode.java | 3 +++ chapter22/src/main/java/com/seaofnodes/simple/node/ReturnNode.java | 1 - 4 files changed, 3 insertions(+), 4 deletions(-) diff --git a/chapter22/src/main/java/com/seaofnodes/simple/codegen/CodeGen.java b/chapter22/src/main/java/com/seaofnodes/simple/codegen/CodeGen.java index 86cbfe97..bf6d67b0 100644 --- a/chapter22/src/main/java/com/seaofnodes/simple/codegen/CodeGen.java +++ b/chapter22/src/main/java/com/seaofnodes/simple/codegen/CodeGen.java @@ -300,8 +300,6 @@ public class CodeGen { if( x instanceof MachNode mach ) mach.postSelect(this); // Post selection action - // Updates forward edges only. - n._outputs.clear(); return x; } diff --git a/chapter22/src/main/java/com/seaofnodes/simple/node/CallEndNode.java b/chapter22/src/main/java/com/seaofnodes/simple/node/CallEndNode.java index 47975833..e1d8aee5 100644 --- a/chapter22/src/main/java/com/seaofnodes/simple/node/CallEndNode.java +++ b/chapter22/src/main/java/com/seaofnodes/simple/node/CallEndNode.java @@ -37,7 +37,6 @@ public class CallEndNode extends CFGNode implements MultiNode { if( !(in(0) instanceof CallNode call) ) return TypeTuple.RET.dual(); Type ret = Type.BOTTOM; - TypeMem mem = TypeMem.BOT; if( addDep(call.fptr())._type instanceof TypeFunPtr tfp ) { ret = tfp.ret(); // Here, if I can figure out I've found *all* callers, then I can meet diff --git a/chapter22/src/main/java/com/seaofnodes/simple/node/PhiNode.java b/chapter22/src/main/java/com/seaofnodes/simple/node/PhiNode.java index 0579ecd0..e6f9cae7 100644 --- a/chapter22/src/main/java/com/seaofnodes/simple/node/PhiNode.java +++ b/chapter22/src/main/java/com/seaofnodes/simple/node/PhiNode.java @@ -127,6 +127,9 @@ public class PhiNode extends Node { addDep(out); return false; } + for( int j=1; j