From: Andrea Corallo Date: Thu, 7 Nov 2019 20:40:51 +0000 (+0100) Subject: fix ref ssa propagation X-Git-Tag: emacs-28.0.90~2727^2~1032 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=93aeb781e1da3cab6ae90c90cd3668862155ab85;p=emacs.git fix ref ssa propagation --- diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el index b5e9dfb3841..2afbae56261 100644 --- a/lisp/emacs-lisp/comp.el +++ b/lisp/emacs-lisp/comp.el @@ -1489,7 +1489,9 @@ This can run just once." (when (cl-reduce #'eq (mapcar #'comp-mvar-type rest)) (setf (comp-mvar-type lval) (comp-mvar-type (car rest)))) ;; Reference propagation. - (setf (comp-mvar-ref lval) (cl-every #'comp-mvar-ref rest))))) + (let ((operands (cons lval rest))) + (when (cl-some #'comp-mvar-ref operands) + (mapc (lambda (x) (setf (comp-mvar-ref x) t)) rest)))))) (defun comp-propagate* () "Propagate for set and phi operands."