Function: byte-optimize-form

byte-optimize-form is a byte-compiled function defined in byte-opt.el.gz.

Signature

(byte-optimize-form FORM &optional FOR-EFFECT)

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/byte-opt.el.gz
(defun byte-optimize-form (form &optional for-effect)
  (while
      (progn
        ;; First, optimize all sub-forms of this one.
        ;; `byte-optimize-form-code-walker' fails to preserve any
        ;; position on `form' in enough separate places that we invoke
        ;; `macroexp-preserve-posification' here for source code economy.
        (setq form
              (macroexp-preserve-posification
                  form (byte-optimize-form-code-walker form for-effect)))

        ;; If a form-specific optimizer is available, run it and start over
        ;; until a fixpoint has been reached.
        (and (consp form)
             (symbolp (car form))
             (let ((opt (byte-opt--fget (car form) 'byte-optimizer)))
               (and opt
                    (let ((old form)
                          (new (macroexp-preserve-posification
                                   form (funcall opt form))))
                      (byte-compile-log "  %s\t==>\t%s" old new)
                      (setq form new)
                      (not (eq new old))))))))
  form)