]> git.eshelyaron.com Git - emacs.git/commitdiff
* Relax constant folding rules
authorAndrea Corallo <akrl@sdf.org>
Sat, 4 Jul 2020 14:53:15 +0000 (15:53 +0100)
committerAndrea Corallo <akrl@sdf.org>
Sat, 4 Jul 2020 14:55:48 +0000 (15:55 +0100)
* lisp/emacs-lisp/comp.el (comp-function-optimizable-p): No need to
check for operands or result to be fixnums.

lisp/emacs-lisp/comp.el

index 81612398c7be4aeaddc6c95c29b53f1cedf36196..da567fd9054e38f9086d25a8ce3b807658fbe415 100644 (file)
@@ -1994,13 +1994,8 @@ Here goes everything that can be done not iteratively (read once).
         (memq (get f 'byte-optimizer) comp-propagate-classes)
         (let ((values (mapcar #'comp-mvar-constant args)))
           (pcase f
-            ;; Simple integer operation.
-            ;; Note: byte-opt uses `byte-opt--portable-numberp'
-            ;; instead of just`fixnump'.
-            ((or '+ '- '* '1+ '-1) (and (cl-every #'fixnump values)
-                                        (fixnump (apply f values))))
-            ('/ (and (cl-every #'fixnump values)
-                     (not (= (car (last values)) 0)))))))))
+            ((or '+ '- '* '1+ '-1) t)
+            ('/ (not (= (car (last values)) 0))))))))
 
 (defsubst comp-function-call-maybe-remove (insn f args)
   "Given INSN when F is pure if all ARGS are known remove the function call."