diff options
Diffstat (limited to 'module/system/base/compile.scm')
-rw-r--r-- | module/system/base/compile.scm | 12 |
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)) |