summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDarrick Wiebe <darrickw@gmail.com>2025-04-12 11:46:53 -0400
committerGitHub <noreply@github.com>2025-04-12 08:46:53 -0700
commit47711b81ea915eeeb46b2ad8ebb291fb21cbaf6e (patch)
tree2be3c307995aa982f38a72dfe5adfa469abc3cfe
parent08421921cbb885fdfb785b896f21b59937b99f39 (diff)
downloadSimple-47711b81ea915eeeb46b2ad8ebb291fb21cbaf6e.tar.gz
Simple-47711b81ea915eeeb46b2ad8ebb291fb21cbaf6e.zip
Don't print ante-deps on multinodes when generating asm dumps (#202)
-rw-r--r--chapter21/src/main/java/com/seaofnodes/simple/print/ASMPrinter.java4
-rw-r--r--chapter21/src/main/java/com/seaofnodes/simple/print/IRPrinter.java6
2 files changed, 6 insertions, 4 deletions
diff --git a/chapter21/src/main/java/com/seaofnodes/simple/print/ASMPrinter.java b/chapter21/src/main/java/com/seaofnodes/simple/print/ASMPrinter.java
index 2c5b138d..902aa3c2 100644
--- a/chapter21/src/main/java/com/seaofnodes/simple/print/ASMPrinter.java
+++ b/chapter21/src/main/java/com/seaofnodes/simple/print/ASMPrinter.java
@@ -255,8 +255,8 @@ public abstract class ASMPrinter {
// MultiNodes are immediately followed by projection(s)
if( !(n instanceof CFGNode) && n instanceof MultiNode ) {
for( Node proj : n._outputs ) {
- assert proj instanceof ProjNode;
- doInst(iadr,sb,code,fun, cfgidx, proj,postAlloc,postEncode);
+ if( proj instanceof ProjNode ) // it could also be an ante-dep
+ doInst(iadr,sb,code,fun, cfgidx, proj,postAlloc,postEncode);
}
}
diff --git a/chapter21/src/main/java/com/seaofnodes/simple/print/IRPrinter.java b/chapter21/src/main/java/com/seaofnodes/simple/print/IRPrinter.java
index b171e9f7..c6e478c5 100644
--- a/chapter21/src/main/java/com/seaofnodes/simple/print/IRPrinter.java
+++ b/chapter21/src/main/java/com/seaofnodes/simple/print/IRPrinter.java
@@ -212,7 +212,8 @@ public abstract class IRPrinter {
printLine(n,sb);
if( !(n instanceof CFGNode) && n instanceof MultiNode )
for( Node use : n._outputs )
- printLine(use,sb);
+ if( use instanceof ProjNode )
+ printLine(use,sb);
}
}
@@ -282,7 +283,8 @@ public abstract class IRPrinter {
printLine( n, sb, bns, i--, ds,ns );
if( n instanceof MultiNode && !(n instanceof CFGNode) ) {
for( Node use : n._outputs ) {
- printLine(use,sb,bns,bns.indexOf(use),ds,ns);
+ if( use instanceof ProjNode )
+ printLine(use,sb,bns,bns.indexOf(use),ds,ns);
}
}
}