[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 01/01: Renumber before contifying to eliminate stale con
From: |
Andy Wingo |
Subject: |
[Guile-commits] 01/01: Renumber before contifying to eliminate stale conts |
Date: |
Fri, 05 Jun 2015 15:22:59 +0000 |
wingo pushed a commit to branch master
in repository guile.
commit f41823538a3a35c32bb0d4f23092e37f43d57f1f
Author: Andy Wingo <address@hidden>
Date: Fri Jun 5 17:10:29 2015 +0200
Renumber before contifying to eliminate stale conts
* module/language/cps2/contification.scm (contify): Renumber before
contifying.
---
module/language/cps2/contification.scm | 9 +++++++--
1 files changed, 7 insertions(+), 2 deletions(-)
diff --git a/module/language/cps2/contification.scm
b/module/language/cps2/contification.scm
index b9944a4..e15544a 100644
--- a/module/language/cps2/contification.scm
+++ b/module/language/cps2/contification.scm
@@ -466,5 +466,10 @@ function set."
conts)))
(define (contify conts)
- (let-values (((call-substs return-substs) (compute-contification conts)))
- (apply-contification conts call-substs return-substs)))
+ ;; FIXME: Renumbering isn't really needed but dead continuations may
+ ;; cause compute-singly-referenced-labels to spuriously mark some
+ ;; conts as irreducible. For now we punt and renumber so that there
+ ;; are only live conts.
+ (let ((conts (renumber conts)))
+ (let-values (((call-substs return-substs) (compute-contification conts)))
+ (apply-contification conts call-substs return-substs))))