]> git.eshelyaron.com Git - emacs.git/commitdiff
* Fix 'comp-call-optim pass' for anonymous lambdas
authorAndrea Corallo <akrl@sdf.org>
Sun, 1 Nov 2020 12:58:06 +0000 (13:58 +0100)
committerAndrea Corallo <akrl@sdf.org>
Sun, 1 Nov 2020 14:17:00 +0000 (15:17 +0100)
* lisp/emacs-lisp/comp.el (comp-call-optim-func): Remove anonymous
lambdas gate.
(comp-call-optim-form-call): Add the correct missing condition.

lisp/emacs-lisp/comp.el

index 9b26f6c4198cc1891d48d06980a4682644f7e550..b35fe9bfcbba26921e93ad137a96a7363ea9d6b7 100644 (file)
@@ -2346,6 +2346,7 @@ FUNCTION can be a function-name or byte compiled function."
          ;; Intra compilation unit procedure call optimization.
          ;; Attention speed 3 triggers this for non self calls too!!
          ((and comp-func-callee
+               (comp-func-c-name comp-func-callee)
                (or (and (>= (comp-func-speed comp-func) 3)
                         (comp-func-unique-in-cu-p callee))
                    (and (>= (comp-func-speed comp-func) 2)
@@ -2365,9 +2366,7 @@ FUNCTION can be a function-name or byte compiled function."
 (defun comp-call-optim-func ()
   "Perform the trampoline call optimization for the current function."
   (cl-loop
-   with self = (comp-func-name comp-func)
    for b being each hash-value of (comp-func-blocks comp-func)
-   when self ;; FIXME add proper anonymous lambda support.
    do (comp-loop-insn-in-block b
         (pcase insn
           (`(set ,lval (callref funcall ,f . ,rest))