From 1e11f341609e614c0268c792658c95063a92ac75 Mon Sep 17 00:00:00 2001 From: Kaz Kylheku Date: Tue, 2 Nov 2021 06:56:34 -0700 Subject: compiler: remove excess call to reduce-constant. * stdlib/compiler.tl (compiler comp-arith-form): There is no need here to pass the form through reduce-constant, since we are about to divide up its arguments and individualy reduce them, much like what that function does. --- stdlib/compiler.tl | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) (limited to 'stdlib/compiler.tl') 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) -- cgit v1.2.3