summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2021-02-15 11:59:46 -0800
committerKaz Kylheku <kaz@kylheku.com>2021-02-15 11:59:46 -0800
commitde1340ac942e1d9c5f3e87109846359b2dcd077d (patch)
tree3445cf774b8eafd38519f6df1fc8adf6152f12cc
parent38815c986eb3ed44714016d2d30953353875a2cb (diff)
downloadtxr-de1340ac942e1d9c5f3e87109846359b2dcd077d.tar.gz
txr-de1340ac942e1d9c5f3e87109846359b2dcd077d.tar.bz2
txr-de1340ac942e1d9c5f3e87109846359b2dcd077d.zip
compiler: close instructions terminate basic block.
* share/txr/stdlib/optimize.tl (struct basic-blocks): Include the close instruction in the set which terminate a basic block. A close is an unconditional jump; execution never continues after a close instruction, but goes unconditionally to a branch target.
-rw-r--r--share/txr/stdlib/optimize.tl2
1 files changed, 1 insertions, 1 deletions
diff --git a/share/txr/stdlib/optimize.tl b/share/txr/stdlib/optimize.tl
index 530c26d2..305bab9d 100644
--- a/share/txr/stdlib/optimize.tl
+++ b/share/txr/stdlib/optimize.tl
@@ -32,7 +32,7 @@
list
rescan
(:static start (gensym "start-"))
- (:static jump-ops '(jmp if ifq ifql swtch ret abscsr))
+ (:static jump-ops '(jmp if ifq ifql close swtch ret abscsr))
(:postinit (bb)
(let* ((insns (dedup-labels (cons bb.start bb.insns)))