diff options
| author | Cliff Click <cliffc@acm.org> | 2025-08-09 09:13:01 -0700 |
|---|---|---|
| committer | Cliff Click <cliffc@acm.org> | 2025-08-09 09:13:01 -0700 |
| commit | 840162c586180455e36324f5f041e27956ac0aac (patch) | |
| tree | 999ad49352559af40685122127dbdcc4a2009263 /chapter23 | |
| parent | be3236449aaf7f64d92c4b518229cb05d2e8b886 (diff) | |
| download | Simple-840162c586180455e36324f5f041e27956ac0aac.tar.gz Simple-840162c586180455e36324f5f041e27956ac0aac.zip | |
do not collapse trivial regions
Diffstat (limited to 'chapter23')
| -rw-r--r-- | chapter23/src/main/java/com/seaofnodes/simple/node/RegionNode.java | 4 |
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(); |
