emacs-diffs
[Top][All Lists]
Advanced

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

scratch/comp-branch-optim 9ce2ba8ce11 1/4: Split comp--ssa code


From: Andrea Corallo
Subject: scratch/comp-branch-optim 9ce2ba8ce11 1/4: Split comp--ssa code
Date: Fri, 31 May 2024 05:46:02 -0400 (EDT)

branch: scratch/comp-branch-optim
commit 9ce2ba8ce117890733840cb255005d62abd3c2f4
Author: Andrea Corallo <acorallo@gnu.org>
Commit: Andrea Corallo <acorallo@gnu.org>

    Split comp--ssa code
---
 lisp/emacs-lisp/comp.el | 41 ++++++++++++++++++++++-------------------
 1 file changed, 22 insertions(+), 19 deletions(-)

diff --git a/lisp/emacs-lisp/comp.el b/lisp/emacs-lisp/comp.el
index 2ec55ed98ee..0b12729a415 100644
--- a/lisp/emacs-lisp/comp.el
+++ b/lisp/emacs-lisp/comp.el
@@ -2513,26 +2513,29 @@ Return t when one or more block was removed, nil 
otherwise."
               ret t)
    finally return ret))
 
+(defun comp--ssa-function (function)
+  "Port into minimal SSA FUNCTION."
+  (let* ((comp-func function)
+         (ssa-status (comp-func-ssa-status function)))
+    (unless (eq ssa-status t)
+      (cl-loop
+       when (eq ssa-status 'dirty)
+         do (comp--clean-ssa function)
+       do (comp--compute-edges)
+          (comp--compute-dominator-tree)
+       until (null (comp--remove-unreachable-blocks)))
+      (comp--compute-dominator-frontiers)
+      (comp--log-block-info)
+      (comp--place-phis)
+      (comp--ssa-rename)
+      (comp--finalize-phis)
+      (comp--log-func comp-func 3)
+      (setf (comp-func-ssa-status function) t))))
+
 (defun comp--ssa ()
-  "Port all functions into minimal SSA form."
-  (maphash (lambda (_ f)
-             (let* ((comp-func f)
-                    (ssa-status (comp-func-ssa-status f)))
-               (unless (eq ssa-status t)
-                 (cl-loop
-                  when (eq ssa-status 'dirty)
-                    do (comp--clean-ssa f)
-                  do (comp--compute-edges)
-                     (comp--compute-dominator-tree)
-                 until (null (comp--remove-unreachable-blocks)))
-                 (comp--compute-dominator-frontiers)
-                 (comp--log-block-info)
-                 (comp--place-phis)
-                 (comp--ssa-rename)
-                 (comp--finalize-phis)
-                 (comp--log-func comp-func 3)
-                 (setf (comp-func-ssa-status f) t))))
-           (comp-ctxt-funcs-h comp-ctxt)))
+  "Port all functions into minimal SSA all functions."
+  (cl-loop for f being the hash-value in (comp-ctxt-funcs-h comp-ctxt)
+           do (comp--ssa-function f)))
 
 
 ;;; propagate pass specific code.



reply via email to

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