[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 02/27: Revert "Bootstrap build doesn't have to expand CP
From: |
Andy Wingo |
Subject: |
[Guile-commits] 02/27: Revert "Bootstrap build doesn't have to expand CPS optimizations" |
Date: |
Wed, 11 Nov 2015 11:39:06 +0000 |
wingo pushed a commit to branch master
in repository guile.
commit 8d79dfddb6b57a202215ec632c693e110e502826
Author: Andy Wingo <address@hidden>
Date: Wed Oct 28 09:12:02 2015 +0000
Revert "Bootstrap build doesn't have to expand CPS optimizations"
This reverts commit ce36fb16fff30ba1915dbd9d52d2325acedd54c7.
---
module/language/cps/optimize.scm | 72 ++++++++++++++++++--------------------
1 files changed, 34 insertions(+), 38 deletions(-)
diff --git a/module/language/cps/optimize.scm b/module/language/cps/optimize.scm
index 515fc79..8777222 100644
--- a/module/language/cps/optimize.scm
+++ b/module/language/cps/optimize.scm
@@ -24,6 +24,20 @@
(define-module (language cps optimize)
#:use-module (ice-9 match)
+ #:use-module (language cps constructors)
+ #:use-module (language cps contification)
+ #:use-module (language cps cse)
+ #:use-module (language cps dce)
+ #:use-module (language cps elide-values)
+ #:use-module (language cps licm)
+ #:use-module (language cps peel-loops)
+ #:use-module (language cps prune-top-level-scopes)
+ #:use-module (language cps prune-bailouts)
+ #:use-module (language cps rotate-loops)
+ #:use-module (language cps self-references)
+ #:use-module (language cps simplify)
+ #:use-module (language cps specialize-primcalls)
+ #:use-module (language cps type-fold)
#:use-module (language cps verify)
#:export (optimize-higher-order-cps
optimize-first-order-cps
@@ -41,7 +55,7 @@
(verify program)
program))
-(define-syntax-rule (define-optimizer optimize ((@ mod pass) kw default) ...)
+(define-syntax-rule (define-optimizer optimize (pass kw default) ...)
(define* (optimize program #:optional (opts '()))
;; This series of assignments to `program' used to be a series of
;; let* bindings of `program', as you would imagine. In compiled
@@ -58,7 +72,7 @@
(maybe-verify program)
(set! program
(if (kw-arg-ref opts kw default)
- (maybe-verify ((module-ref (resolve-interface 'mod) 'pass) program))
+ (maybe-verify (pass program))
program))
...
(maybe-verify program)))
@@ -74,45 +88,27 @@
;; pass back here when that's fixed.
;;
;; (split-rec #:split-rec? #t)
- ((@ (language cps dce) eliminate-dead-code)
- #:eliminate-dead-code? #t)
- ((@ (language cps prune-top-level-scopes) prune-top-level-scopes)
- #:prune-top-level-scopes? #t)
- ((@ (language cps simplify) simplify)
- #:simplify? #t)
- ((@ (language cps contification) contify)
- #:contify? #t)
- ((@ (language cps constructors) inline-constructors)
- #:inline-constructors? #t)
- ((@ (language cps specialize-primcalls) specialize-primcalls)
- #:specialize-primcalls? #t)
- ((@ (language cps elide-values) elide-values)
- #:elide-values? #t)
- ((@ (language cps prune-bailouts) prune-bailouts)
- #:prune-bailouts? #t)
- ((@ (language cps peel-loops) peel-loops)
- #:peel-loops? #t)
- ((@ (language cps cse) eliminate-common-subexpressions)
- #:cse? #t)
- ((@ (language cps type-fold) type-fold)
- #:type-fold? #t)
- ((@ (language cps self-references) resolve-self-references)
- #:resolve-self-references? #t)
- ((@ (language cps dce) eliminate-dead-code)
- #:eliminate-dead-code? #t)
- ((@ (language cps simplify) simplify)
- #:simplify? #t))
+ (eliminate-dead-code #:eliminate-dead-code? #t)
+ (prune-top-level-scopes #:prune-top-level-scopes? #t)
+ (simplify #:simplify? #t)
+ (contify #:contify? #t)
+ (inline-constructors #:inline-constructors? #t)
+ (specialize-primcalls #:specialize-primcalls? #t)
+ (elide-values #:elide-values? #t)
+ (prune-bailouts #:prune-bailouts? #t)
+ (peel-loops #:peel-loops? #t)
+ (eliminate-common-subexpressions #:cse? #t)
+ (type-fold #:type-fold? #t)
+ (resolve-self-references #:resolve-self-references? #t)
+ (eliminate-dead-code #:eliminate-dead-code? #t)
+ (simplify #:simplify? #t))
(define-optimizer optimize-first-order-cps
- ((@ (language cps licm) hoist-loop-invariant-code)
- #:licm? #t)
+ (hoist-loop-invariant-code #:licm? #t)
;; FIXME: CSE here to eliminate duplicate free-ref terms.
- ((@ (language cps dce) eliminate-dead-code)
- #:eliminate-dead-code? #t)
- ((@ (language cps rotate-loops) rotate-loops)
- #:rotate-loops? #t)
- ((@ (language cps simplify) simplify)
- #:simplify? #t))
+ (eliminate-dead-code #:eliminate-dead-code? #t)
+ (rotate-loops #:rotate-loops? #t)
+ (simplify #:simplify? #t))
(define (cps-default-optimization-options)
(list ;; #:split-rec? #t
- [Guile-commits] 25/27: Better f64 unboxing for loop vars that might flow to $ktail, (continued)
- [Guile-commits] 25/27: Better f64 unboxing for loop vars that might flow to $ktail, Andy Wingo, 2015/11/11
- [Guile-commits] 17/27: Add VM ops to pack and unpack raw f64 values., Andy Wingo, 2015/11/11
- [Guile-commits] 03/27: CSE can run on first-order CPS, Andy Wingo, 2015/11/11
- [Guile-commits] 16/27: Stack slots can hold a double, Andy Wingo, 2015/11/11
- [Guile-commits] 12/27: Remove return opcode, Andy Wingo, 2015/11/11
- [Guile-commits] 09/27: Always emit return-values, Andy Wingo, 2015/11/11
- [Guile-commits] 08/27: Replace return primcalls with $values, Andy Wingo, 2015/11/11
- [Guile-commits] 24/27: The compiler can unbox float64 loop variables, Andy Wingo, 2015/11/11
- [Guile-commits] 26/27: Remove debug printout in specialize-numbers, Andy Wingo, 2015/11/11
- [Guile-commits] 18/27: Type inference distinguishes between untagged and tagged flonums, Andy Wingo, 2015/11/11
- [Guile-commits] 02/27: Revert "Bootstrap build doesn't have to expand CPS optimizations",
Andy Wingo <=