From: Andrea Corallo Date: Sun, 7 Jun 2020 09:46:08 +0000 (+0200) Subject: * Improve propagate pass X-Git-Tag: emacs-28.0.90~2727^2~583 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=47a6fbd38278b40737d498a41a35259458633136;p=emacs.git * Improve propagate pass As function folding can generate 'setimm' insns handle them in the `comp-propagate-insn'. * lisp/emacs-lisp/comp.el (comp-propagate-insn): Handle 'setimm' insn. --- diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el index 4926c5d683f..ecd411591a3 100644 --- a/lisp/emacs-lisp/comp.el +++ b/lisp/emacs-lisp/comp.el @@ -1926,6 +1926,10 @@ Here goes everything that can be done not iteratively (read once). (comp-function-call-maybe-remove insn f args))) (_ (comp-mvar-propagate lval rval)))) + (`(setimm ,lval ,v) + (setf (comp-mvar-const-vld lval) t + (comp-mvar-constant lval) v + (comp-mvar-type lval) (comp-strict-type-of v))) (`(phi ,lval . ,rest) ;; Forward const prop here. (when-let* ((vld (cl-every #'comp-mvar-const-vld rest))