aboutsummaryrefslogtreecommitdiff
path: root/src/interp/g-opt.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2012-02-26 20:57:32 +0000
committerdos-reis <gdr@axiomatics.org>2012-02-26 20:57:32 +0000
commit7f099548f4fce103f5eb285e20fcb5f0aebdfee9 (patch)
treed0e663f68d0076fa29cd45dd171192309cd1dc1d /src/interp/g-opt.boot
parentaec9b22130652d0f5e6eed72f04ae128633108df (diff)
downloadopen-axiom-7f099548f4fce103f5eb285e20fcb5f0aebdfee9.tar.gz
* interp/g-util.boot (usedSymbol?): Remove.
(bindingForm?): New. (usesVariable?): Likewise. * interp/compiler.boot (declareUnusedParameters): Use it. * interp/g-opt.boot (inlineLocals): Likewise. (optClosure): Likewise. (optBind): Likewise. * interp/define.boot (compContained): Remove.
Diffstat (limited to 'src/interp/g-opt.boot')
-rw-r--r--src/interp/g-opt.boot8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/interp/g-opt.boot b/src/interp/g-opt.boot
index c953c3e3..51bc8cef 100644
--- a/src/interp/g-opt.boot
+++ b/src/interp/g-opt.boot
@@ -244,8 +244,8 @@ inlineLocals! x == walkWith!(x,function f) where
kept := nil
while inits is [u,:inits] repeat
[y,z] := u
- usedSymbol?(y,z) or usedSymbol?(y,inits) => kept := [u,:kept]
- or/[usedSymbol?(v,z) for [v,.] in kept] => kept := [u,:kept]
+ usesVariable?(z,y) or usesVariable?(inits,y) => kept := [u,:kept]
+ or/[usesVariable?(z,v) for [v,.] in kept] => kept := [u,:kept]
canInlineVarDefinition(y,z,x.absBody) =>
x.absBody := substitute!(z,y,x.absBody)
kept := [u,:kept]
@@ -560,7 +560,7 @@ optClosure(x is ['%closure,fun,env]) ==
do
vars is [:vars',=env] =>
body is [op,: =vars] => x.args := [['%function,op],env]
- not CONTAINED(env,body) => x.args := [fun,'%nil]
+ not usesVariable?(body,env) => x.args := [fun,'%nil]
x
x
@@ -776,7 +776,7 @@ optBind form ==
form isnt ['%bind,inits,.] => form -- accept only simple bodies
while inits ~= nil repeat
[var,expr] := first inits
- usedSymbol?(var,rest inits) => leave nil -- no dependency, please.
+ usesVariable?(rest inits,var) => leave nil -- no dependency, please.
body := third form
canInlineVarDefinition(var,expr,body) =>
third(form) := substitute!(expr,var,body)