summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/comp.el
diff options
context:
space:
mode:
authorAndrea Corallo <akrl@sdf.org>2020-11-01 13:58:06 +0100
committerAndrea Corallo <akrl@sdf.org>2020-11-01 15:17:00 +0100
commit3e3843512bfae0b7a532f633e45d4c140807ec9b (patch)
treeca42ab8e3e381b2c53044054ae0546f60061cd3f /lisp/emacs-lisp/comp.el
parent933fd76f8fa4583aa3c4cc6e6e22f9a96638c5a5 (diff)
downloademacs-3e3843512bfae0b7a532f633e45d4c140807ec9b.tar.gz
emacs-3e3843512bfae0b7a532f633e45d4c140807ec9b.tar.bz2
emacs-3e3843512bfae0b7a532f633e45d4c140807ec9b.zip
* Fix 'comp-call-optim pass' for anonymous lambdas
* lisp/emacs-lisp/comp.el (comp-call-optim-func): Remove anonymous lambdas gate. (comp-call-optim-form-call): Add the correct missing condition.
Diffstat (limited to 'lisp/emacs-lisp/comp.el')
-rw-r--r--lisp/emacs-lisp/comp.el3
1 files changed, 1 insertions, 2 deletions
diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
index 9b26f6c4198..b35fe9bfcbb 100644
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
@@ -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))