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
commit5408cc94bf0fbc51027f8b9e35590b73888b93d2 (patch)
tree3445cf774b8eafd38519f6df1fc8adf6152f12cc
parente2f1066cebdc3aeb139856302a290ac2513d1615 (diff)
downloadtxr-5408cc94bf0fbc51027f8b9e35590b73888b93d2.tar.gz
txr-5408cc94bf0fbc51027f8b9e35590b73888b93d2.tar.bz2
txr-5408cc94bf0fbc51027f8b9e35590b73888b93d2.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)))