Function: comp-fwprop-call

comp-fwprop-call is a byte-compiled function defined in comp.el.gz.

Signature

(comp-fwprop-call INSN LVAL F ARGS)

Documentation

Propagate on a call INSN into LVAL.

F is the function being called with arguments ARGS. Fold the call in case.

Source Code

;; Defined in /usr/src/emacs/lisp/emacs-lisp/comp.el.gz
(defun comp-fwprop-call (insn lval f args)
  "Propagate on a call INSN into LVAL.
F is the function being called with arguments ARGS.
Fold the call in case."
  (unless (comp-function-call-maybe-fold insn f args)
    (when (and (eq 'funcall f)
               (comp-cstr-imm-vld-p (car args)))
      (setf f (comp-cstr-imm (car args))
            args (cdr args)))
    (when-let ((cstr-f (gethash f comp-known-func-cstr-h)))
      (let ((cstr (comp-cstr-f-ret cstr-f)))
        (when (comp-cstr-empty-p cstr)
          ;; Store it to be rewritten as non local exit.
          (setf (comp-block-lap-non-ret-insn comp-block) insn))
        (comp-cstr-shallow-copy lval cstr)))
    (cl-case f
      (+ (comp-cstr-add lval args))
      (- (comp-cstr-sub lval args))
      (1+ (comp-cstr-add lval `(,(car args) ,comp-cstr-one)))
      (1- (comp-cstr-sub lval `(,(car args) ,comp-cstr-one))))))