Function: comp-collect-rev-post-order
comp-collect-rev-post-order is a byte-compiled function defined in
comp.el.gz.
Signature
(comp-collect-rev-post-order BASIC-BLOCK)
Documentation
Walk BASIC-BLOCK children and return their name in reversed post-order.
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/comp.el.gz
(defun comp-collect-rev-post-order (basic-block)
"Walk BASIC-BLOCK children and return their name in reversed post-order."
(let ((visited (make-hash-table))
(acc ()))
(cl-labels ((collect-rec (bb)
(let ((name (comp-block-name bb)))
(unless (gethash name visited)
(puthash name t visited)
(cl-loop for e in (comp-block-out-edges bb)
for dst-block = (comp-edge-dst e)
do (collect-rec dst-block))
(push name acc)))))
(collect-rec basic-block)
acc)))