From 47a6fbd38278b40737d498a41a35259458633136 Mon Sep 17 00:00:00 2001 From: Andrea Corallo Date: Sun, 7 Jun 2020 11:46:08 +0200 Subject: [PATCH] * 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. --- lisp/emacs-lisp/comp.el | 4 ++++ 1 file changed, 4 insertions(+) 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)) -- 2.39.5