[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Guile-commits] 03/21: Revert "Bootstrap build doesn't have to expand CP
From: |
Andy Wingo |
Subject: |
[Guile-commits] 03/21: Revert "Bootstrap build doesn't have to expand CPS optimizations" |
Date: |
Wed, 28 Oct 2015 22:31:14 +0000 |
wingo pushed a commit to branch wip-2.1.2
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] branch wip-2.1.2 created (now b5b6721), Andy Wingo, 2015/10/28
- [Guile-commits] 01/21: Release v2.1.1, Andy Wingo, 2015/10/28
- [Guile-commits] 02/21: Bootstrap build doesn't have to expand CPS optimizations, Andy Wingo, 2015/10/28
- [Guile-commits] 05/21: Run CSE to clean up after closure conversion, Andy Wingo, 2015/10/28
- [Guile-commits] 03/21: Revert "Bootstrap build doesn't have to expand CPS optimizations",
Andy Wingo <=
- [Guile-commits] 06/21: Fix slot-allocation to make 'return' not need to alloc-frame, Andy Wingo, 2015/10/28
- [Guile-commits] 08/21: Don't emit redundant reset-frame before return, Andy Wingo, 2015/10/28
- [Guile-commits] 07/21: return-values opcode resets the frame, Andy Wingo, 2015/10/28
- [Guile-commits] 11/21: rtl.test uses return-values, Andy Wingo, 2015/10/28
- [Guile-commits] 10/21: Always emit return-values, Andy Wingo, 2015/10/28
- [Guile-commits] 12/21: Remove use of return in disassembler.scm, Andy Wingo, 2015/10/28
- [Guile-commits] 04/21: CSE can run on first-order CPS, Andy Wingo, 2015/10/28
- [Guile-commits] 09/21: Replace return primcalls with $values, Andy Wingo, 2015/10/28
- [Guile-commits] 13/21: Remove return opcode, Andy Wingo, 2015/10/28
- [Guile-commits] 14/21: Treat tail $values as generating lazy allocations, Andy Wingo, 2015/10/28