summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--module/language/cps2/contification.scm9
1 files changed, 7 insertions, 2 deletions
diff --git a/module/language/cps2/contification.scm b/module/language/cps2/contification.scm
index b9944a4f1..e15544af2 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))))