diff options
author | Stefan Monnier <[email protected]> | 2011-03-22 20:53:36 -0400 |
---|---|---|
committer | Stefan Monnier <[email protected]> | 2011-03-22 20:53:36 -0400 |
commit | 29a4dcb06d4bd78db96d6305f7434ce464aff8a4 (patch) | |
tree | 483a56b4db104ebab3874abf5b9017c43662d2f4 /lisp/emacs-lisp/cconv.el | |
parent | cafdcef32d55cbb44389d7e322e7f973cbb72dfd (diff) |
Clean up left over Emacs-18/19 code, inline byte-code-functions.
* lisp/emacs-lisp/byte-opt.el (byte-inline-lapcode): Move to bytecomp.el.
(byte-compile-inline-expand): Inline all bytecompiled functions.
Unify the inlining code of the lexbind and dynbind interpreted functions.
(byte-compile-unfold-lambda): Don't handle byte-compiled functions at all.
(byte-optimize-form-code-walker): Don't optimize byte-compiled inlined
functions here.
(byte-compile-splice-in-already-compiled-code): Remove.
(byte-code): Don't optimize it any more.
(byte-decompile-bytecode-1): Remove unused bytedecomp-bytes.
Leave `byte-return's even for `make-spliceable'.
* lisp/emacs-lisp/bytecomp.el (byte-compile-file-form-defmumble):
byte-compile-lambda now always returns a byte-code-function.
(byte-compile-byte-code-maker, byte-compile-byte-code-unmake)
(byte-compile-closure): Remove.
(byte-compile-lambda): Always return a byte-code-function.
(byte-compile-top-level): Don't handle `byte-code' forms specially.
(byte-compile-inline-lapcode): New function, taken from byte-opt.el.
(byte-compile-unfold-bcf): New function.
(byte-compile-form): Use it to optimize inline byte-code-functions.
(byte-compile-function-form, byte-compile-defun): Simplify.
(byte-compile-defmacro): Don't bother calling
byte-compile-byte-code-maker.
Diffstat (limited to 'lisp/emacs-lisp/cconv.el')
-rw-r--r-- | lisp/emacs-lisp/cconv.el | 5 |
1 files changed, 1 insertions, 4 deletions
diff --git a/lisp/emacs-lisp/cconv.el b/lisp/emacs-lisp/cconv.el index 5d19bf969e..fe5d7230fb 100644 --- a/lisp/emacs-lisp/cconv.el +++ b/lisp/emacs-lisp/cconv.el @@ -66,9 +66,6 @@ ;;; Code: ;; TODO: (not just for cconv but also for the lexbind changes in general) -;; - inline lexical byte-code functions. -;; - investigate some old v18 stuff in bytecomp.el. -;; - optimize away unused cl-block-wrapper. ;; - let (e)debug find the value of lexical variables from the stack. ;; - byte-optimize-form should be applied before cconv. ;; OTOH, the warnings emitted by cconv-analyze need to come before optimize @@ -87,7 +84,7 @@ ;; - Since we know here when a variable is not mutated, we could pass that ;; info to the byte-compiler, e.g. by using a new `immutable-let'. ;; - add tail-calls to bytecode.c and the byte compiler. -;; - call known non-escaping functions with gotos rather than `call'. +;; - call known non-escaping functions with `goto' rather than `call'. ;; - optimize mapcar to a while loop. ;; (defmacro dlet (binders &rest body) |