1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-01-04 11:00:45 -08:00

* 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.
This commit is contained in:
Andrea Corallo 2020-06-07 11:46:08 +02:00
parent a58fef9f63
commit 47a6fbd382

View file

@ -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))