]> git.eshelyaron.com Git - emacs.git/commit
* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): Add 2 new opts
authorStefan Monnier <monnier@iro.umontreal.ca>
Wed, 20 Jan 2021 19:08:35 +0000 (14:08 -0500)
committerStefan Monnier <monnier@iro.umontreal.ca>
Wed, 20 Jan 2021 19:13:15 +0000 (14:13 -0500)
commit66439d31ad2a63753d29e4582b76b36b9363d96b
tree914f5a0a6502f96cd676140977299c773d94dc1f
parent4dfebf25c743d4ba4506919b58591f74debfb334
* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode): Add 2 new opts

This introduces two new optimizations.  They're designed for code like

    (while
        (let (...)
          (if ... (progn blabla t) (progn blabla nil)))
      ...)

and they allow the elimination of the test internal to `while` since
we can immediately know when we return `t` or `nil` what the result
of the test will be.

`cl-labels` tends to generate this kind of code when it applies the
tail-call optimization.
lisp/emacs-lisp/byte-opt.el