summaryrefslogtreecommitdiff
path: root/module/language/cps/optimize.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/language/cps/optimize.scm')
-rw-r--r--module/language/cps/optimize.scm53
1 files changed, 24 insertions, 29 deletions
diff --git a/module/language/cps/optimize.scm b/module/language/cps/optimize.scm
index 522de5124..ef73d4996 100644
--- a/module/language/cps/optimize.scm
+++ b/module/language/cps/optimize.scm
@@ -1,6 +1,6 @@
;;; Continuation-passing style (CPS) intermediate language (IL)
-;; Copyright (C) 2013, 2014, 2015 Free Software Foundation, Inc.
+;; Copyright (C) 2013, 2014, 2015, 2017, 2018 Free Software Foundation, Inc.
;;;; This library is free software; you can redistribute it and/or
;;;; modify it under the terms of the GNU Lesser General Public
@@ -24,15 +24,13 @@
(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 devirtualize-integers)
#: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)
@@ -42,7 +40,7 @@
#:use-module (language cps verify)
#:export (optimize-higher-order-cps
optimize-first-order-cps
- cps-default-optimization-options))
+ cps-optimizations))
(define (kw-arg-ref args kw default)
(match (memq kw args)
@@ -93,9 +91,8 @@
(prune-top-level-scopes #:prune-top-level-scopes? #t)
(simplify #:simplify? #t)
(contify #:contify? #t)
- (inline-constructors #:inline-constructors? #t)
- (elide-values #:elide-values? #t)
- (prune-bailouts #:prune-bailouts? #t)
+ (simplify #:simplify? #t)
+ (devirtualize-integers #:devirtualize-integers? #t)
(peel-loops #:peel-loops? #t)
(eliminate-common-subexpressions #:cse? #t)
(type-fold #:type-fold? #t)
@@ -106,30 +103,28 @@
(define-optimizer optimize-first-order-cps
(specialize-numbers #:specialize-numbers? #t)
(hoist-loop-invariant-code #:licm? #t)
+ (specialize-primcalls #:specialize-primcalls? #t)
(eliminate-common-subexpressions #:cse? #t)
(eliminate-dead-code #:eliminate-dead-code? #t)
;; Running simplify here enables rotate-loops to do a better job.
(simplify #:simplify? #t)
(rotate-loops #:rotate-loops? #t)
- (simplify #:simplify? #t)
- (specialize-primcalls #:specialize-primcalls? #t))
+ (simplify #:simplify? #t))
-(define (cps-default-optimization-options)
- (list ;; #:split-rec? #t
- #:simplify? #t
- #:eliminate-dead-code? #t
- #:prune-top-level-scopes? #t
- #:contify? #t
- #:inline-constructors? #t
- #:specialize-primcalls? #t
- #:elide-values? #t
- #:prune-bailouts? #t
- #:peel-loops? #t
- #:cse? #t
- #:type-fold? #t
- #:resolve-self-references? #t
- #:specialize-numbers? #t
- #:licm? #t
- #:rotate-loops? #t
- ;; This one is used by the slot allocator.
- #:precolor-calls? #t))
+(define (cps-optimizations)
+ '( ;; (#:split-rec? #t)
+ (#:simplify? 2)
+ (#:eliminate-dead-code? 2)
+ (#:prune-top-level-scopes? 2)
+ (#:contify? 2)
+ (#:specialize-primcalls? 2)
+ (#:peel-loops? 2)
+ (#:cse? 2)
+ (#:type-fold? 2)
+ (#:resolve-self-references? 2)
+ (#:devirtualize-integers? 2)
+ (#:specialize-numbers? 2)
+ (#:licm? 2)
+ (#:rotate-loops? 2)
+ ;; This one is used by the slot allocator.
+ (#:precolor-calls? 2)))