diff options
author | Mattias EngdegÄrd <mattiase@acm.org> | 2023-02-12 12:33:27 +0100 |
---|---|---|
committer | Mattias EngdegÄrd <mattiase@acm.org> | 2023-02-13 16:57:49 +0100 |
commit | 8aef401b4f66a64ddfa9390590fb2cae1f96d522 (patch) | |
tree | fb54bed75d8cb6f6149e256350689ce94f06c8da /lisp/emacs-lisp/generate-lisp-file.el | |
parent | a3edacd3f547195740304139cb68aaa94d7b18ee (diff) | |
download | emacs-8aef401b4f66a64ddfa9390590fb2cae1f96d522.tar.gz emacs-8aef401b4f66a64ddfa9390590fb2cae1f96d522.tar.bz2 emacs-8aef401b4f66a64ddfa9390590fb2cae1f96d522.zip |
LAP optimiser: more stack reduction hoisting
Hoisting stack reduction ops allows them to coalesce and/or cancel out
pushing ops, and for useful operations to sink and combine, such as
not + goto-if-[not-]nil.
* lisp/emacs-lisp/byte-opt.el (byte-optimize-lapcode):
Add the rule
UNARY discardN-preserve-tos --> discardN-preserve-tos UNARY
where UNARY pops and pushes one value.
Generalise the rule
const discardN-preserve-tos --> discardN const
to any 0-ary op, not just const: varref, point, etc.
Diffstat (limited to 'lisp/emacs-lisp/generate-lisp-file.el')
0 files changed, 0 insertions, 0 deletions