diff options
author | Mattias EngdegÄrd <mattiase@acm.org> | 2022-08-12 20:12:25 +0200 |
---|---|---|
committer | Mattias EngdegÄrd <mattiase@acm.org> | 2022-08-16 20:44:50 +0200 |
commit | e618b6faee5b81d17501fdb2e6b121062f95c021 (patch) | |
tree | 7b9c47a1a008da199e7e361287ecbb021c8c32d8 /lisp/emacs-lisp/seq.el | |
parent | 869db699ee276349b5de17b54daa4e75433075b9 (diff) | |
download | emacs-e618b6faee5b81d17501fdb2e6b121062f95c021.tar.gz emacs-e618b6faee5b81d17501fdb2e6b121062f95c021.tar.bz2 emacs-e618b6faee5b81d17501fdb2e6b121062f95c021.zip |
Improved `if` and `while` optimisation
Recognise some more special cases:
(if X nil t) -> (not X)
(if X t) -> (not (not X))
(if X t nil) -> (not (not X))
(if VAR VAR X...) -> (or VAR (progn X...))
* lisp/emacs-lisp/byte-opt.el (byte-opt-negate): New.
(byte-optimize-if): Add transformations above and refactor.
(byte-optimize-while): Better static nil-detection.
Diffstat (limited to 'lisp/emacs-lisp/seq.el')
0 files changed, 0 insertions, 0 deletions