aboutsummaryrefslogtreecommitdiff
path: root/src/interp
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp')
-rw-r--r--src/interp/g-opt.boot10
1 files changed, 5 insertions, 5 deletions
diff --git a/src/interp/g-opt.boot b/src/interp/g-opt.boot
index bdca2d74..20b1b962 100644
--- a/src/interp/g-opt.boot
+++ b/src/interp/g-opt.boot
@@ -318,8 +318,10 @@ spliceSeq! x == walkWith!(x,function f) where
++ a lower intermediate form, applying several transformations
++ generaly intended to improve quality and efficiency.
optimize! x ==
- simplifyVMForm spliceSeq! packWhen! spliceSeq! packWhen! transformIF!
- removeSeq! inlineLocals! groupTranscients! reduceXLAM! x
+ x := spliceSeq! packWhen! transformIF! x
+ changeVariableDefinitionToStore(x,nil)
+ simplifyVMForm spliceSeq! packWhen! inlineLocals!
+ groupTranscients! removeSeq! reduceXLAM! x
++ A non-mutating version of `optimize!'.
optimize x ==
@@ -330,9 +332,7 @@ optimizeFunctionDef(def) ==
sayBrightlyI bright '"Original LISP code:"
pp def
- expr := copyTree second def
- changeVariableDefinitionToStore(expr.absBody,expr.absParms)
- expr := optimize! expr
+ expr := optimize! copyTree second def
if $reportOptimization then
sayBrightlyI bright '"Intermediate VM code:"