]> git.eshelyaron.com Git - emacs.git/commit
* Allow for adding constraints targetting blocks with multiple predecessors
authorAndrea Corallo <akrl@sdf.org>
Sat, 12 Dec 2020 21:20:28 +0000 (22:20 +0100)
committerAndrea Corallo <akrl@sdf.org>
Sat, 12 Dec 2020 23:58:25 +0000 (00:58 +0100)
commit682bd303470d4a0fcd2690aff6aa58fb720a8d41
tree7e35690e05ec121c6918653ec32fee55cd9a0791
parent258eaddef8979d8ec6decb1ff4b11cab4be05e8b
* Allow for adding constraints targetting blocks with multiple predecessors

This commit remove the limitaiton we had not being able to add
constraints derived from conditional branches to basic blocks with
multiple predecessors.  When this condition is verified we add a new
dedicated basic block to hold the constraints.

* lisp/emacs-lisp/comp.el (comp-block, comp-edge): Better slot
type specifiers.
(comp-block-cstr): New struct specializing `comp-block'.
(make-comp-edge): New function.
(comp-func): Better test function + doc for `blocks' slot.
(comp-limple-lock-keywords): Update possible basic block names.
(comp-emit-assume): Recive directly the block instead of its name.
(comp-add-new-block-beetween): New function.
(comp-cond-cstr-target-block): Logic update and use
`comp-add-new-block-beetween'.
(comp-cond-cstr-func): Make use of the latter.
(comp-compute-edges): Make use of `make-comp-edge'.
lisp/emacs-lisp/comp.el