emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

feature/native-comp 96f59a9 1/2: * Add into phi l-value args basic block


From: Andrea Corallo
Subject: feature/native-comp 96f59a9 1/2: * Add into phi l-value args basic block names
Date: Sat, 10 Oct 2020 14:33:38 -0400 (EDT)

branch: feature/native-comp
commit 96f59a9faf375409a0301a54fcb46fc2325a9cc2
Author: Andrea Corallo <akrl@sdf.org>
Commit: Andrea Corallo <akrl@sdf.org>

    * Add into phi l-value args basic block names
    
        * lisp/emacs-lisp/comp.el (comp-ssa-rename-insn): Clean-up a
        leftover space.
        (comp-finalize-phis): Cons the blasic block name providing the
        mvar together with the mvar itself while forming the phi.
        (comp-fwprop-insn): Destructure correctly the phi.
---
 lisp/emacs-lisp/comp.el | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
index a4f2b6c..be29f84 100644
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
@@ -1920,7 +1920,7 @@ PRE-LAMBDA and POST-LAMBDA are called in pre or 
post-order if non-nil."
         (`(fetch-handler . ,_)
          ;; Clobber all no matter what!
          (setf (aref frame slot-n) (make-comp-ssa-mvar :slot slot-n)))
-        (`(phi  ,n)
+        (`(phi ,n)
          (when (equal n slot-n)
            (new-lvalue)))
         (_
@@ -1958,7 +1958,8 @@ PRE-LAMBDA and POST-LAMBDA are called in pre or 
post-order if non-nil."
                                for e in (comp-block-in-edges b)
                                for b = (comp-edge-src e)
                                for in-frame = (comp-block-final-frame b)
-                               collect (aref in-frame slot-n)))))
+                               collect (cons (aref in-frame slot-n)
+                                             (comp-block-name b))))))
 
     (cl-loop for b being each hash-value of (comp-func-blocks comp-func)
              do (cl-loop for (op . args) in (comp-block-insns b)
@@ -2105,7 +2106,7 @@ Forward propagate immediate involed in assignments."
      (setf (comp-mvar-const-vld lval) t
            (comp-mvar-constant lval) v
            (comp-mvar-type lval) (comp-strict-type-of v)))
-    (`(phi ,lval . ,rest)
+    (`(phi (,lval . _) . ,rest)
      ;; Forward const prop here.
      (when-let* ((vld (cl-every #'comp-mvar-const-vld rest))
                  (consts (mapcar #'comp-mvar-constant rest))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]