diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2023-07-31 08:05:22 -0700 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2023-07-31 08:05:22 -0700 |
commit | 9d2aa3c66fa52700b213b29ae52d9f08e67d0e2c (patch) | |
tree | 7068a7fb42dfac8616b14d79621b4ea66463bf21 /stdlib | |
parent | 58354d27c7f3f2d8f75522fe67875a2d57fcae9b (diff) | |
download | txr-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.tl | 1 |
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)) |