mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-20 03:30:27 +02:00
Fix add-prompt-control-flow-edges for terms with no continuation
* module/language/cps/slot-allocation.scm (add-prompt-control-flow-edges): Allow for terms that don't continue, and add them to the minimal prompt control flow edges set.
This commit is contained in:
parent
ee15ca1455
commit
de5c81b1d1
1 changed files with 3 additions and 4 deletions
|
@ -249,10 +249,9 @@ body continuation in the prompt."
|
|||
;; continuations that postdominate the rest of the body. Unless
|
||||
;; you pass #:complete? #t, we only invoke F on continuations
|
||||
;; that can leave the body, or on back-edges in loops.
|
||||
(intset-any (lambda (succ)
|
||||
(or (not (intset-ref body succ))
|
||||
(<= succ label)))
|
||||
(intmap-ref succs label)))
|
||||
(not (intset-any (lambda (succ)
|
||||
(and (intset-ref body succ) (< label succ)))
|
||||
(intmap-ref succs label))))
|
||||
(intset-fold (lambda (pred succs)
|
||||
(intmap-replace succs pred handler intset-add))
|
||||
(if complete? body (intset-filter out-or-back-edge? body))
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue