summaryrefslogtreecommitdiff
path: root/module/language
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2021-04-25 13:33:06 +0200
committerAndy Wingo <wingo@pobox.com>2021-04-25 13:33:06 +0200
commit5809279b9949692469d98a843227cd242217bea3 (patch)
treee251e5a671fb4413d766312dfb5489c97ef043f1 /module/language
parent39619988e4a541278f79b410261af1b0e693587a (diff)
downloadguile-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.
Diffstat (limited to 'module/language')
-rw-r--r--module/language/cps/dce.scm7
-rw-r--r--module/language/cps/simplify.scm2
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)))