(match (lookup-cont (idx->label n) dfg)
(($ $kclause) n)
(($ $kargs names syms body)
+ (define (compute-k-live k)
+ (match (lookup-predecessors k dfg)
+ ((_) post-live)
+ (_ (recompute-live-slots k nargs))))
(let ((uses (vector-ref usev n)))
(match (find-call body)
(($ $continue k src (or ($ $call) ($ $callk)))
- (allocate-call label k uses live post-live))
+ (allocate-call label k uses live (compute-k-live k)))
(($ $continue k src ($ $primcall)) #t)
(($ $continue k src ($ $values))
- (allocate-values label k uses live post-live))
+ (allocate-values label k uses live (compute-k-live k)))
(($ $continue k src ($ $prompt escape? tag handler))
(allocate-prompt label k handler nargs))
(_ #f)))