[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 05/08: Fix add-prompt-control-flow-edges for terms with
From: |
Andy Wingo |
Subject: |
[Guile-commits] 05/08: Fix add-prompt-control-flow-edges for terms with no continuation |
Date: |
Wed, 3 Jan 2018 15:31:24 -0500 (EST) |
wingo pushed a commit to branch master
in repository guile.
commit de5c81b1d14e29799e7ba957f5db1db1231207e2
Author: Andy Wingo <address@hidden>
Date: Wed Jan 3 18:54:55 2018 +0100
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.
---
module/language/cps/slot-allocation.scm | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
diff --git a/module/language/cps/slot-allocation.scm
b/module/language/cps/slot-allocation.scm
index 106496a..76cb48d 100644
--- a/module/language/cps/slot-allocation.scm
+++ b/module/language/cps/slot-allocation.scm
@@ -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))
- [Guile-commits] branch master updated (108ade6 -> 118f516), Andy Wingo, 2018/01/03
- [Guile-commits] 05/08: Fix add-prompt-control-flow-edges for terms with no continuation,
Andy Wingo <=
- [Guile-commits] 02/08: Fix sandbox, Andy Wingo, 2018/01/03
- [Guile-commits] 07/08: Simplify prompt slot allocation now that bailouts can't continue, Andy Wingo, 2018/01/03
- [Guile-commits] 03/08: Variable renaming in type-fold.scm, Andy Wingo, 2018/01/03
- [Guile-commits] 08/08: $primcall always continues to $kargs, Andy Wingo, 2018/01/03
- [Guile-commits] 06/08: $throw is a new kind of CPS term, Andy Wingo, 2018/01/03
- [Guile-commits] 04/08: $prompt is now its own kind of CPS term., Andy Wingo, 2018/01/03
- [Guile-commits] 01/08: $branch is now a distinct CPS term type, Andy Wingo, 2018/01/03