From 9d2aa3c66fa52700b213b29ae52d9f08e67d0e2c Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Mon, 31 Jul 2023 08:05:22 -0700 Subject: 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. --- stdlib/optimize.tl | 1 + 1 file changed, 1 insertion(+) (limited to 'stdlib/optimize.tl') 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)) -- cgit v1.2.3