From ef7577136b942819d4cff2f8c63605744e854f75 Mon Sep 17 00:00:00 2001 From: Cliff Click Date: Sun, 11 May 2025 11:43:10 -0700 Subject: Clean up stacked mergemem --- .../com/seaofnodes/simple/node/MemMergeNode.java | 32 ++++++++++++++++------ .../java/com/seaofnodes/simple/node/StoreNode.java | 7 +++++ 2 files changed, 30 insertions(+), 9 deletions(-) (limited to 'chapter22/src/main/java/com/seaofnodes') diff --git a/chapter22/src/main/java/com/seaofnodes/simple/node/MemMergeNode.java b/chapter22/src/main/java/com/seaofnodes/simple/node/MemMergeNode.java index e936ee58..9f2fdd16 100644 --- a/chapter22/src/main/java/com/seaofnodes/simple/node/MemMergeNode.java +++ b/chapter22/src/main/java/com/seaofnodes/simple/node/MemMergeNode.java @@ -65,24 +65,38 @@ public class MemMergeNode extends Node { @Override public Node idealize() { if( inProgress() ) return null; + // Fold defaults into the default + boolean progress=false, allDefault=true; + for( int i=2; i=nIns() || in(i)==null ) + setDefX(i,mem.in(i)); + } + } + setDef(1,mem.in(1)); + return this; + } + + return progress ? this : null; } public Node in( Var v ) { return in(v._idx); } public Node alias( int alias ) { - return in(alias