summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKaz Kylheku <kaz@kylheku.com>2021-02-10 23:35:36 -0800
committerKaz Kylheku <kaz@kylheku.com>2021-02-10 23:35:36 -0800
commit4e32c77f590b5191d488da142d3009522f0127ba (patch)
tree752be43f67093b1120d581f9e39e8e1801929c19
parent7d5ebc10065443a69bc848e65636a96ce8db632f (diff)
downloadtxr-4e32c77f590b5191d488da142d3009522f0127ba.tar.gz
txr-4e32c77f590b5191d488da142d3009522f0127ba.tar.bz2
txr-4e32c77f590b5191d488da142d3009522f0127ba.zip
compiler: use rewrite-case in dedup-labels.
* share/txr/stdlib/optimize.tl (dedup-labels): Use rewrite-case macro defined in the same file instead of rewrite/lambda/match-case. Also change two-argument list* to cons.
-rw-r--r--share/txr/stdlib/optimize.tl14
1 files changed, 6 insertions, 8 deletions
diff --git a/share/txr/stdlib/optimize.tl b/share/txr/stdlib/optimize.tl
index 0875231c..9acbbe5d 100644
--- a/share/txr/stdlib/optimize.tl
+++ b/share/txr/stdlib/optimize.tl
@@ -165,12 +165,10 @@
list))
(defun dedup-labels (insns)
- (rewrite (lambda (tail)
- (match-case tail
- ((@(symbolp @label0) @(symbolp @label1) . @rest)
- (set insns (mapcar [iffi listp (op subst label1 label0)]
- (remq label1 insns)))
- (list* label0 rest))
- (@else tail)))
- insns)
+ (rewrite-case tail insns
+ ((@(symbolp @label0) @(symbolp @label1) . @rest)
+ (set insns (mapcar [iffi listp (op subst label1 label0)]
+ (remq label1 insns)))
+ (cons label0 rest))
+ (@else tail))
insns)