wingo pushed a commit to branch wip-2.1.2
in repository guile.
commit dd77a818ba6aefc98a78d03dec61454546992671
Author: Andy Wingo <[email protected]>
Date: Wed Oct 28 13:33:37 2015 +0000
Treat tail $values as generating lazy allocations
* module/language/cps/slot-allocation.scm (compute-lazy-vars): Returning
values in tail position also generates lazy vars.
---
module/language/cps/slot-allocation.scm | 4 ++++
1 files changed, 4 insertions(+), 0 deletions(-)
diff --git a/module/language/cps/slot-allocation.scm
b/module/language/cps/slot-allocation.scm
index b306898..1e349ee 100644
--- a/module/language/cps/slot-allocation.scm
+++ b/module/language/cps/slot-allocation.scm
@@ -376,6 +376,10 @@ is an active call."
(($ $kargs _ _ ($ $continue _ _ ($ $callk _ proc args)))
(intset-subtract (intset-add (list->intset args) proc)
(intmap-ref live-out label)))
+ (($ $kargs _ _ ($ $continue k _($ $values args)))
+ (match (intmap-ref cps k)
+ (($ $ktail) (list->intset args))
+ (_ #f)))
(_ #f)))
cps))
(kills (intmap-map