]> git.eshelyaron.com Git - emacs.git/commit
* Clean unreachable block using dominance tree to handle circularities
authorAndrea Corallo <akrl@sdf.org>
Fri, 1 Jan 2021 10:09:00 +0000 (11:09 +0100)
committerAndrea Corallo <akrl@sdf.org>
Fri, 1 Jan 2021 13:06:00 +0000 (14:06 +0100)
commit93ff838575d25eba76bb0b3d476a36a56bbfba30
treed381a9fa1b24c74c79ab2de14324755ad1b2acad
parent6ba94f7c77b4013e15f8a5a9181fba9a2df20ab7
* Clean unreachable block using dominance tree to handle circularities

With this commit unreachable basic blocks are pruned automatically by
comp-ssa relying on dominance analysis.  This solves the issue of
unreachable cluster of basic blocks referencing each other.

* lisp/emacs-lisp/comp.el (comp-block-lap): New `no-ret' slot.
(comp-compute-dominator-tree): Update.
(comp-remove-unreachable-blocks): New functions.
(comp-ssa): Update to call `comp-remove-unreachable-blocks'.
(comp-clean-orphan-blocks): Delete.
(comp-rewrite-non-locals): Update and simplify.
lisp/emacs-lisp/comp.el