aboutsummaryrefslogtreecommitdiff
path: root/src/interp/g-opt.boot
diff options
context:
space:
mode:
Diffstat (limited to 'src/interp/g-opt.boot')
-rw-r--r--src/interp/g-opt.boot12
1 files changed, 1 insertions, 11 deletions
diff --git a/src/interp/g-opt.boot b/src/interp/g-opt.boot
index 2e9a92f7..833ed930 100644
--- a/src/interp/g-opt.boot
+++ b/src/interp/g-opt.boot
@@ -211,7 +211,7 @@ changeThrowToGo(s,g) ==
changeThrowToGo(rest s,g)
++ Change any `(THROW tag (%return expr))' in x to just
-++ `(%return expr) since a return-operator transfer control
+++ `(%return expr) since a %return-expression transfers control
++ out of the function body anyway. Similarly, transform
++ reudant `(THROW tag (THROW tag expr))' to `(THROW tag expr)'.
removeNeedlessThrow x ==
@@ -269,19 +269,9 @@ optCall (x is ['%call,:u]) ==
systemErrorHere ['optCall,x]
optCallSpecially(q,x,n,R) ==
- y:= LASSOC(R,$specialCaseKeyList) => optSpecialCall(x,y,n)
optimizableDomain? R => optSpecialCall(x,R,n)
(y:= get(R,"value",$e)) and optimizableDomain? y.expr =>
optSpecialCall(x,y.expr,n)
- (
- (y:= lookup(R,$getDomainCode)) and ([op,y,prop]:= y) and
- (yy:= LASSOC(y,$specialCaseKeyList)) =>
- optSpecialCall(x,[op,yy,prop],n)) where
- lookup(a,l) ==
- null l => nil
- [l',:l]:= l
- l' is ["%LET", =a,l',:.] => l'
- lookup(a,l)
nil
optCallEval u ==