diff options
author | Andy Wingo <wingo@pobox.com> | 2021-04-05 20:58:03 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2021-04-26 17:56:56 +0200 |
commit | 4da276de166edfd6328173361b0122047746ffdd (patch) | |
tree | 44b3948f1f05ce1ab219824911df74d5e1638fa1 /module/language/tree-il/optimize.scm | |
parent | c4a4c330f3cc8090269aa903e644965b798fb7fa (diff) | |
download | guile-wip-inlinable-exports.tar.gz |
Implement cross-module inliningwip-inlinable-exports
* module/language/tree-il/optimize.scm (make-optimizer): Pass
cross-module-inlining? to peval.
* module/language/tree-il/peval.scm (peval): Add cross-module-inlining?
kwarg. Try to inline public module-ref.
Diffstat (limited to 'module/language/tree-il/optimize.scm')
-rw-r--r-- | module/language/tree-il/optimize.scm | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/module/language/tree-il/optimize.scm b/module/language/tree-il/optimize.scm index 264cd64d6..b1d8b8294 100644 --- a/module/language/tree-il/optimize.scm +++ b/module/language/tree-il/optimize.scm @@ -44,6 +44,7 @@ (expand (lookup #:expand-primitives? primitives expand-primitives)) (letrectify (lookup #:letrectify? letrectify)) (seal? (assq-ref opts #:seal-private-bindings?)) + (xinline? (assq-ref opts #:cross-module-inlining?)) (peval (lookup #:partial-eval? peval)) (eta-expand (lookup #:eta-expand? eta-expand)) (inlinables (lookup #:inlinable-exports? inlinable-exports))) @@ -56,7 +57,7 @@ (run-pass! (expand exp)) (run-pass! (letrectify exp #:seal-private-bindings? seal?)) (run-pass! (fix-letrec exp)) - (run-pass! (peval exp env)) + (run-pass! (peval exp env #:cross-module-inlining? xinline?)) (run-pass! (eta-expand exp)) (run-pass! (inlinables exp)) exp))) |