summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2025-08-09 09:13:01 -0700
committerCliff Click <cliffc@acm.org>2025-08-09 09:13:01 -0700
commit840162c586180455e36324f5f041e27956ac0aac (patch)
tree999ad49352559af40685122127dbdcc4a2009263
parentbe3236449aaf7f64d92c4b518229cb05d2e8b886 (diff)
downloadSimple-840162c586180455e36324f5f041e27956ac0aac.tar.gz
Simple-840162c586180455e36324f5f041e27956ac0aac.zip
do not collapse trivial regions
-rw-r--r--chapter23/src/main/java/com/seaofnodes/simple/node/RegionNode.java4
1 files changed, 2 insertions, 2 deletions
diff --git a/chapter23/src/main/java/com/seaofnodes/simple/node/RegionNode.java b/chapter23/src/main/java/com/seaofnodes/simple/node/RegionNode.java
index e25c2380..2b467a8c 100644
--- a/chapter23/src/main/java/com/seaofnodes/simple/node/RegionNode.java
+++ b/chapter23/src/main/java/com/seaofnodes/simple/node/RegionNode.java
@@ -57,8 +57,8 @@ public class RegionNode extends CFGNode {
return delDef(2);
}
- // Flatten stack regions (no loops involved)
- if( getClass() == RegionNode.class ) {
+ // Flatten stacked regions (no loops involved)
+ if( getClass() == RegionNode.class && nIns()>2 ) {
for( int i=1; i<nIns(); i++ )
if( cfg(i) instanceof RegionNode region && region.getClass() == RegionNode.class && region.nIns()>2 && !hasMidUser(region) ) {
assert !region.inProgress();