Function: comp-rewrite-non-locals
comp-rewrite-non-locals is a byte-compiled function defined in
comp.el.gz.
Signature
(comp-rewrite-non-locals)
Documentation
Make explicit in LIMPLE non-local exits if identified.
Source Code
;; Defined in /usr/src/emacs/lisp/emacs-lisp/comp.el.gz
(defun comp-rewrite-non-locals ()
"Make explicit in LIMPLE non-local exits if identified."
(cl-loop
for bb being each hash-value of (comp-func-blocks comp-func)
for non-local-insn = (and (comp-block-lap-p bb)
(comp-block-lap-non-ret-insn bb))
when non-local-insn
do
;; Rework the current block.
(let* ((insn-seq (memq non-local-insn (comp-block-insns bb))))
(setf (comp-block-lap-non-ret-insn bb) ()
(comp-block-lap-no-ret bb) t
(comp-block-out-edges bb) ()
;; Prune unnecessary insns!
(cdr insn-seq) '((unreachable))
(comp-func-ssa-status comp-func) 'dirty))))