guile-commits
[Top][All Lists]
Advanced

[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))))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]