]> git.eshelyaron.com Git - emacs.git/commitdiff
* Improve propagate pass
authorAndrea Corallo <akrl@sdf.org>
Sun, 7 Jun 2020 09:46:08 +0000 (11:46 +0200)
committerAndrea Corallo <akrl@sdf.org>
Sun, 7 Jun 2020 14:59:23 +0000 (16:59 +0200)
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

index 4926c5d683f409e5b09a3e617814e0bb4d1c8c07..ecd411591a3150093b1b5ab1057a2b6c7ec56d83 100644 (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))