diff options
author | Andy Wingo <wingo@pobox.com> | 2021-04-01 14:46:01 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2021-05-11 21:39:07 +0200 |
commit | a892791b43a68a80f2caeab49b123bc828324969 (patch) | |
tree | 1f3279ef50372b92171417867afe411de5aa601c /module/language/tree-il/optimize.scm | |
parent | 809b1651289b330fbcc30d539e1b3c5c20bc83af (diff) | |
download | guile-a892791b43a68a80f2caeab49b123bc828324969.tar.gz |
Add pass to resolve free toplevel references in declarative modules
* am/bootstrap.am (SOURCES):
* module/Makefile.am (SOURCES):
* module/language/tree-il/optimize.scm (make-optimizer): Wire up the new
pass.
* module/language/tree-il/resolve-free-vars.scm: New pass.
* module/system/base/optimize.scm (available-optimizations): Enable new
pass at -O1.
Diffstat (limited to 'module/language/tree-il/optimize.scm')
-rw-r--r-- | module/language/tree-il/optimize.scm | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/module/language/tree-il/optimize.scm b/module/language/tree-il/optimize.scm index c080bbbc2..ba55f974b 100644 --- a/module/language/tree-il/optimize.scm +++ b/module/language/tree-il/optimize.scm @@ -39,6 +39,7 @@ 'proc))))) (let ((verify (or (lookup #:verify-tree-il? debug verify-tree-il) (lambda (exp) exp))) + (modulify (lookup #:resolve-free-vars? resolve-free-vars)) (resolve (lookup #:resolve-primitives? primitives resolve-primitives)) (expand (lookup #:expand-primitives? primitives expand-primitives)) (letrectify (lookup #:letrectify? letrectify)) @@ -49,6 +50,7 @@ (when proc (set! exp (verify (proc exp arg ...))))) (lambda (exp env) (verify exp) + (run-pass! (modulify exp)) (run-pass! (resolve exp env)) (run-pass! (expand exp)) (run-pass! (letrectify exp #:seal-private-bindings? seal?)) |