[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 03/10: Enable CPS2 closure conversion
From: |
Andy Wingo |
Subject: |
[Guile-commits] 03/10: Enable CPS2 closure conversion |
Date: |
Thu, 16 Jul 2015 08:06:24 +0000 |
wingo pushed a commit to branch master
in repository guile.
commit 030e9b76036beeffff845619875124400f33ef5b
Author: Andy Wingo <address@hidden>
Date: Wed Jul 15 16:44:49 2015 +0200
Enable CPS2 closure conversion
* module/language/cps2/closure-conversion.scm: Remove debug printfs.
* module/language/cps2/compile-cps.scm (compile-cps):
* module/language/cps/compile-bytecode.scm (compile-bytecode): Use CPS2
closure conversion by default.
---
module/language/cps/compile-bytecode.scm | 2 +-
module/language/cps2/closure-conversion.scm | 3 ---
module/language/cps2/compile-cps.scm | 2 +-
3 files changed, 2 insertions(+), 5 deletions(-)
diff --git a/module/language/cps/compile-bytecode.scm
b/module/language/cps/compile-bytecode.scm
index b66b1a6..cc696a9 100644
--- a/module/language/cps/compile-bytecode.scm
+++ b/module/language/cps/compile-bytecode.scm
@@ -517,7 +517,7 @@
;;
;; (set! exp (optimize exp opts))
- (set! exp (if (not (kw-arg-ref opts #:cps2-convert? #f))
+ (set! exp (if (not (kw-arg-ref opts #:cps2-convert? #t))
(convert-closures exp)
exp))
;; first-order optimization should go here
diff --git a/module/language/cps2/closure-conversion.scm
b/module/language/cps2/closure-conversion.scm
index 0ae1bf3..9e3a099 100644
--- a/module/language/cps2/closure-conversion.scm
+++ b/module/language/cps2/closure-conversion.scm
@@ -201,7 +201,6 @@ the bound vars of the closure."
((eq? empty-intset unknown-kfuns)
;; All functions are well-known; we can share a closure. Use
;; the first bound variable.
- (pk 'all-well-known kfuns)
(let ((closure (car vars)))
(intset-fold (lambda (kfun out)
(intmap-add out kfun closure))
@@ -211,7 +210,6 @@ the bound vars of the closure."
;; Only one function is not-well-known. Use that
;; function's closure as the shared closure.
(let ((closure (assq-ref (map cons kfuns vars) unknown-kfun)))
- (pk 'one-not-well-known kfuns closure)
(intset-fold (lambda (kfun out)
(intmap-add out kfun closure))
kfuns-set out))))
@@ -789,7 +787,6 @@ bound to @var{var}, and continue to @var{k}."
($continue k src
($prompt escape? tag handler)))))))))
- (pk 'convert-one label body free self-known?)
(intset-fold (lambda (label cps)
(match (intmap-ref cps label (lambda (_) #f))
(($ $kargs names vars term)
diff --git a/module/language/cps2/compile-cps.scm
b/module/language/cps2/compile-cps.scm
index da51d35..4c0947b 100644
--- a/module/language/cps2/compile-cps.scm
+++ b/module/language/cps2/compile-cps.scm
@@ -118,6 +118,6 @@
(define (compile-cps exp env opts)
(let ((exp (optimize-higher-order-cps exp opts)))
- (if (kw-arg-ref opts #:cps2-convert? #f)
+ (if (kw-arg-ref opts #:cps2-convert? #t)
(values (conts->fun* (renumber (convert-closures exp))) env env)
(values (conts->fun (renumber exp)) env env))))
- [Guile-commits] branch master updated (981802c -> 90aabcc), Andy Wingo, 2015/07/16
- [Guile-commits] 01/10: closure-conversion docstring tweak, Andy Wingo, 2015/07/16
- [Guile-commits] 02/10: CPS2 closure conversion bugfixes, Andy Wingo, 2015/07/16
- [Guile-commits] 03/10: Enable CPS2 closure conversion,
Andy Wingo <=
- [Guile-commits] 04/10: Prepare DCE pass for first-order CPS2, Andy Wingo, 2015/07/16
- [Guile-commits] 06/10: DCE works on first-order CPS, Andy Wingo, 2015/07/16
- [Guile-commits] 05/10: compute-reachable-functions refactor, Andy Wingo, 2015/07/16
- [Guile-commits] 10/10: Fix type/range inference for mul, Andy Wingo, 2015/07/16
- [Guile-commits] 07/10: Beta reduction over first-order CPS, Andy Wingo, 2015/07/16
- [Guile-commits] 08/10: Optimize first-order CPS, Andy Wingo, 2015/07/16
- [Guile-commits] 09/10: Remove CPS optimization passes and closure conversion, Andy Wingo, 2015/07/16