summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2023-07-31 08:05:22 -0700
committerKaz Kylheku <kaz@kylheku.com>2023-07-31 08:05:22 -0700
commiteaaefa2caac74bfab9763c7aa60cd76055992b7f (patch)
tree7068a7fb42dfac8616b14d79621b4ea66463bf21
parent7097e4312f5558a147bf72f0076e444946336ff7 (diff)
downloadtxr-eaaefa2caac74bfab9763c7aa60cd76055992b7f.tar.gz
txr-eaaefa2caac74bfab9763c7aa60cd76055992b7f.tar.bz2
txr-eaaefa2caac74bfab9763c7aa60cd76055992b7f.zip
compiler: bug: disappearing basic block nojoin flag.
Discovered while experimenting with new optimizations. * stdlib/optimize.tl (basic-blocks join-block): When we join the following block into the current block, we must propagate the nojoin property of the following block. The nojoin property has to do with the last instruction being xend. The joined block has that last instruction and so must be nojoin.
-rw-r--r--stdlib/optimize.tl1
1 files changed, 1 insertions, 0 deletions
diff --git a/stdlib/optimize.tl b/stdlib/optimize.tl
index 7b8d6587..a16403b9 100644
--- a/stdlib/optimize.tl
+++ b/stdlib/optimize.tl
@@ -115,6 +115,7 @@
nxbl.insns nil
bl.next nxbl.next
bl.links nxbl.links
+ bl.nojoin nxbl.nojoin
bb.list (remq nxbl bb.list))
(if nxbl.next
(set nxbl.next.prev bl.prev))