1
Fork 0
mirror of https://git.savannah.gnu.org/git/guile.git synced 2025-06-19 02:00:26 +02:00

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.
This commit is contained in:
Andy Wingo 2015-10-28 13:33:37 +00:00
parent 95855087ec
commit dd77a818ba

View file

@ -376,6 +376,10 @@ is an active call."
(($ $kargs _ _ ($ $continue _ _ ($ $callk _ proc args))) (($ $kargs _ _ ($ $continue _ _ ($ $callk _ proc args)))
(intset-subtract (intset-add (list->intset args) proc) (intset-subtract (intset-add (list->intset args) proc)
(intmap-ref live-out label))) (intmap-ref live-out label)))
(($ $kargs _ _ ($ $continue k _($ $values args)))
(match (intmap-ref cps k)
(($ $ktail) (list->intset args))
(_ #f)))
(_ #f))) (_ #f)))
cps)) cps))
(kills (intmap-map (kills (intmap-map