diff options
author | Kaz Kylheku <kaz@kylheku.com> | 2021-02-10 23:35:36 -0800 |
---|---|---|
committer | Kaz Kylheku <kaz@kylheku.com> | 2021-02-10 23:35:36 -0800 |
commit | 4e32c77f590b5191d488da142d3009522f0127ba (patch) | |
tree | 752be43f67093b1120d581f9e39e8e1801929c19 | |
parent | 7d5ebc10065443a69bc848e65636a96ce8db632f (diff) | |
download | txr-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.tl | 14 |
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) |