diff options
-rw-r--r-- | 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 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)))) |