diff options
author | Andy Wingo <wingo@pobox.com> | 2021-04-25 13:33:06 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2021-04-25 13:33:06 +0200 |
commit | 5809279b9949692469d98a843227cd242217bea3 (patch) | |
tree | e251e5a671fb4413d766312dfb5489c97ef043f1 | |
parent | 39619988e4a541278f79b410261af1b0e693587a (diff) | |
download | guile-5809279b9949692469d98a843227cd242217bea3.tar.gz |
Fix bugs introduced when allowing $kfun -> $kargs
* module/language/cps/dce.scm (compute-known-allocations):
* module/language/cps/simplify.scm (eta-reduce): Allow the case-lambda
without clauses.
-rw-r--r-- | module/language/cps/dce.scm | 7 | ||||
-rw-r--r-- | module/language/cps/simplify.scm | 2 |
2 files changed, 6 insertions, 3 deletions
diff --git a/module/language/cps/dce.scm b/module/language/cps/dce.scm index bc8345d9b..8b0604624 100644 --- a/module/language/cps/dce.scm +++ b/module/language/cps/dce.scm @@ -89,7 +89,10 @@ sites." (($ $kreceive arity kargs) (values known (intset-add! unknown kargs))) (($ $kfun src meta self tail entry) - (values known (intset-add! unknown entry))) + (values known + (if entry + (intset-add! unknown entry) + unknown))) (($ $kclause arity body alt) (values known (intset-add! unknown body))) (($ $ktail) @@ -270,7 +273,7 @@ sites." (($ $kfun src meta self tail entry) (values live-labels (adjoin-vars - (or (cont-defs entry) '()) + (or (and entry (cont-defs entry)) '()) (if self (adjoin-var self live-vars) live-vars)))) (($ $ktail) (values live-labels live-vars)))) diff --git a/module/language/cps/simplify.scm b/module/language/cps/simplify.scm index 20c1279b9..ef7b86f79 100644 --- a/module/language/cps/simplify.scm +++ b/module/language/cps/simplify.scm @@ -178,7 +178,7 @@ (($ $kclause arity body alt) ($kclause ,arity (subst body) alt)) (($ $kfun src meta self tail entry) - ($kfun src meta self tail (subst entry))) + ($kfun src meta self tail (and entry (subst entry)))) (_ ,cont)))) conts))) |