summaryrefslogtreecommitdiffstats
path: root/stdlib
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
commit9d2aa3c66fa52700b213b29ae52d9f08e67d0e2c (patch)
tree7068a7fb42dfac8616b14d79621b4ea66463bf21 /stdlib
parent58354d27c7f3f2d8f75522fe67875a2d57fcae9b (diff)
downloadtxr-9d2aa3c66fa52700b213b29ae52d9f08e67d0e2c.tar.gz
txr-9d2aa3c66fa52700b213b29ae52d9f08e67d0e2c.tar.bz2
txr-9d2aa3c66fa52700b213b29ae52d9f08e67d0e2c.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.
Diffstat (limited to 'stdlib')
-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))