aboutsummaryrefslogtreecommitdiff
path: root/src/interp/compiler.boot
diff options
context:
space:
mode:
authordos-reis <gdr@axiomatics.org>2012-02-26 05:05:01 +0000
committerdos-reis <gdr@axiomatics.org>2012-02-26 05:05:01 +0000
commit932e2546f8624aff5cde6fb900857c11290357b9 (patch)
tree0220b9be4012e86056f4e98e6302af974b847188 /src/interp/compiler.boot
parent005c2bd99d216a29ae3ea876cbb5b4f5490a2e7d (diff)
downloadopen-axiom-932e2546f8624aff5cde6fb900857c11290357b9.tar.gz
* interp/compiler.boot (compTopLevel): Do not bind $killOptimizeIfTrue.
(compWithMappingMode): Likewise. (compUnnamedMapping): Likewise. (extractCode): Simplify. * interp/g-opt.boot (optClosure): New. Register. (semiSimpleRelativeTo?): An abstraction is always semisimple. * interp/nruncomp.boot ($killOptimizeIfTrue): Remove. (optDeltaEntry): Don't test for it.
Diffstat (limited to 'src/interp/compiler.boot')
-rw-r--r--src/interp/compiler.boot12
1 files changed, 3 insertions, 9 deletions
diff --git a/src/interp/compiler.boot b/src/interp/compiler.boot
index 8d04a77a..52cc875d 100644
--- a/src/interp/compiler.boot
+++ b/src/interp/compiler.boot
@@ -92,7 +92,6 @@ compTopLevel: (%Form,%Mode,%Env) -> %Maybe %Triple
compTopLevel(x,m,e) ==
-- signals that target is derived from lhs-- see NRTmakeSlot1Info
$NRTderivedTargetIfTrue: local := false
- $killOptimizeIfTrue: local := false
$forceAdd: local:= false
-- start with a base list of domains we may want to inline.
$optimizableConstructorNames: local := $SystemInlinableConstructorNames
@@ -338,7 +337,6 @@ finishLambdaExpression(expr is ["LAMBDA",vars,.],env) ==
['%closure,fname,vec]
compWithMappingMode(x,m is ["Mapping",m',:sl],oldE) ==
- $killOptimizeIfTrue: local := true
e := oldE
isFunctor x =>
if get(x,"modemap",$CategoryFrame) is [[[.,target,:argModeList],.],:.] and
@@ -360,12 +358,9 @@ compWithMappingMode(x,m is ["Mapping",m',:sl],oldE) ==
[finishLambdaExpression(fun,e),m,oldE]
extractCode(u,vars) ==
- u is ['%call,fn,: =vars] =>
- fn is ['%apply,a] => a
- fn is [q,:.] and q in '(ELT CONST) => ['%tref,:fn.args]
- fn
- [op,:.,env] := u
- ['%closure,['%function,op],env]
+ u is ['%call,['%apply,a],: =vars] => a
+ u is ['%call,[q,:etc],: =vars] and q in '(ELT CONST) => ['%tref,:etc]
+ ['%closure,['%function,['%lambda,[:vars,'$],u]],'$]
compExpression(x,m,e) ==
$insideExpressionIfTrue: local:= true
@@ -2751,7 +2746,6 @@ compRep(["rep",x],m,e) ==
--% Lambda expressions
compUnnamedMapping(parms,source,target,body,env) ==
- $killOptimizeIfTrue: local := true
savedEnv := env
for p in parms for s in source repeat
[.,.,env] := compMakeDeclaration(p,s,env)