summaryrefslogtreecommitdiffstats
path: root/stdlib/compiler.tl
diff options
context:
space:
mode:
Diffstat (limited to 'stdlib/compiler.tl')
-rw-r--r--stdlib/compiler.tl21
1 files changed, 10 insertions, 11 deletions
diff --git a/stdlib/compiler.tl b/stdlib/compiler.tl
index 7fea5dcd..ae64266b 100644
--- a/stdlib/compiler.tl
+++ b/stdlib/compiler.tl
@@ -1248,17 +1248,16 @@
(defmeth compiler comp-arith-form (me oreg env form)
(if (plusp *opt-level*)
- (let ((rform (reduce-constant env form)))
- (tree-case rform
- ((op . args)
- (let* ((pargs [partition-by constantp args])
- (fargs (append-each ((pa pargs))
- (if (and (constantp (car pa))
- (all pa [chain eval integerp]))
- (list (eval ^(,op ,*pa)))
- pa))))
- me.(comp-fun-form oreg env ^(,op ,*fargs))))
- (else me.(compile oreg env rform))))
+ (tree-case form
+ ((op . args)
+ (let* ((pargs [partition-by constantp args])
+ (fargs (append-each ((pa pargs))
+ (if (and (constantp (car pa))
+ (all pa [chain eval integerp]))
+ (list (eval ^(,op ,*pa)))
+ pa))))
+ me.(comp-fun-form oreg env ^(,op ,*fargs))))
+ (else me.(compile oreg env form)))
me.(comp-fun-form oreg env form)))
(defmeth compiler comp-arith-neg-form (me oreg env form)