summaryrefslogtreecommitdiff
path: root/module/system/base/compile.scm
diff options
context:
space:
mode:
Diffstat (limited to 'module/system/base/compile.scm')
-rw-r--r--module/system/base/compile.scm12
1 files changed, 6 insertions, 6 deletions
diff --git a/module/system/base/compile.scm b/module/system/base/compile.scm
index 7ec2da3c2..3ea1e7aca 100644
--- a/module/system/base/compile.scm
+++ b/module/system/base/compile.scm
@@ -224,11 +224,11 @@
((#:warnings warnings . _) warnings)
((_ _ . opts) (lp opts))))))))
-(define (add-default-optimizations lang optimization-level opts)
+(define (compute-lowerer lang optimization-level opts)
(level-validator optimization-level)
- (match (language-optimizations-for-level lang)
- (#f opts)
- (get-opts (append opts (get-opts optimization-level)))))
+ (match (language-lowerer lang)
+ (#f (lambda (exp env) exp))
+ (proc (proc optimization-level opts))))
(define (compute-compiler from to optimization-level warning-level opts)
(let lp ((order (or (lookup-compilation-order from to)
@@ -237,10 +237,10 @@
(() (lambda (exp env) (values exp env env)))
(((lang . pass) . order)
(let* ((analyze (compute-analyzer lang warning-level opts))
- (opts (add-default-optimizations lang optimization-level opts))
+ (lower (compute-lowerer lang optimization-level opts))
(compile (lambda (exp env)
(analyze exp env)
- (pass exp env opts)))
+ (pass (lower exp env) env opts)))
(tail (lp order)))
(lambda (exp env)
(let*-values (((exp env cenv) (compile exp env))