]> git.eshelyaron.com Git - emacs.git/commit
Short-circuit the recursive bytecode funcall chain
authorMattias Engdegård <mattiase@acm.org>
Tue, 28 Dec 2021 15:50:07 +0000 (16:50 +0100)
committerMattias Engdegård <mattiase@acm.org>
Mon, 24 Jan 2022 10:41:46 +0000 (11:41 +0100)
commit15961108c9acbef5b7e7daeb47f026969b7a5407
tree14dcfa10cffa9181f0e6cb50a6c9bc7d50f4d618
parentbcf844b5fcaeff3548e35b6a6e3c320c8187ae06
Short-circuit the recursive bytecode funcall chain

Inline parts of the code for function calls to speed up the common
case of calling lexbound byte-code.  By eliminating intermediate
functions, this also reduces C stack usage a little.

* src/bytecode.c (exec_byte_code): Inline parts of Ffuncall,
funcall_lambda and fetch_and_exec_byte_code in the Bcall opcode
handler.
* src/eval.c (backtrace_debug_on_exit): Inline and move to lisp.h.
(do_debug_on_call): Make global so that it can be called from
bytecode.c.
(funcall_general): New function, essentially the meat of Ffuncall.
* src/lisp.h (backtrace_debug_on_exit): Moved here from eval.c.
src/bytecode.c
src/eval.c
src/lisp.h