summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndy Wingo <wingo@pobox.com>2012-04-13 15:23:20 -0700
committerAndy Wingo <wingo@pobox.com>2012-04-23 21:52:24 +0200
commit9068f4f52772397c5d4408f585ccdf1017869a3e (patch)
treee58c8e528b4687a76188d36ec6c1f9ae1b6efa54
parentf66cbb99ee096186837536885d3436bb334df34d (diff)
downloadguile-9068f4f52772397c5d4408f585ccdf1017869a3e.tar.gz
enable cse
* module/language/tree-il/optimize.scm: Enable CSE unless #:cse? #f is passed. * test-suite/tests/tree-il.test: Disable CSE for one test.
-rw-r--r--module/language/tree-il/optimize.scm16
-rw-r--r--test-suite/tests/tree-il.test2
2 files changed, 13 insertions, 5 deletions
diff --git a/module/language/tree-il/optimize.scm b/module/language/tree-il/optimize.scm
index baac91579..c6e4fec07 100644
--- a/module/language/tree-il/optimize.scm
+++ b/module/language/tree-il/optimize.scm
@@ -1,6 +1,6 @@
;;; Tree-il optimizer
-;; Copyright (C) 2009, 2011 Free Software Foundation, Inc.
+;; Copyright (C) 2009, 2011, 2012 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
@@ -22,6 +22,7 @@
#:use-module (language tree-il)
#:use-module (language tree-il primitives)
#:use-module (language tree-il peval)
+ #:use-module (language tree-il cse)
#:use-module (language tree-il fix-letrec)
#:use-module (language tree-il debug)
#:use-module (ice-9 match)
@@ -32,8 +33,15 @@
((#:partial-eval? #f _ ...)
;; Disable partial evaluation.
(lambda (x e) x))
- (_ peval))))
+ (_ peval)))
+ (cse (match (memq #:cse? opts)
+ ((#:cse? #f _ ...)
+ ;; Disable CSE.
+ (lambda (x) x))
+ (_ cse))))
(fix-letrec!
(verify-tree-il
- (peval (expand-primitives! (resolve-primitives! x env))
- env)))))
+ (cse
+ (verify-tree-il
+ (peval (expand-primitives! (resolve-primitives! x env))
+ env)))))))
diff --git a/test-suite/tests/tree-il.test b/test-suite/tests/tree-il.test
index 2d0784ed8..2b07e62d5 100644
--- a/test-suite/tests/tree-il.test
+++ b/test-suite/tests/tree-il.test
@@ -148,7 +148,7 @@
(lexical #t #f ref 0) (call return 1)
(unbind)))
- (assert-tree-il->glil without-partial-evaluation
+ (assert-tree-il->glil with-options (#:partial-eval? #f #:cse? #f)
(let (x) (y) ((const 1)) (begin (lexical x y) (const #f)))
(program () (std-prelude 0 1 #f) (label _)
(const 1) (bind (x #f 0)) (lexical #t #f set 0)