compiler.tree.propagation.call-effect: changing back call-effect-unsafe?, changing it made all images to large for some reason

db4
Björn Lindqvist 2015-03-17 15:47:06 +00:00 committed by John Benediktsson
parent 92165e4ee7
commit eda9535ce6
2 changed files with 12 additions and 4 deletions

View File

@ -16,6 +16,12 @@ IN: compiler.tree.propagation.call-effect.tests
100 [ sq ] ( a -- b ) call-effect-slow>quot call
] unit-test
! call-effect-unsafe?
{ f t } [
[ ] ( m -- ) call-effect-unsafe?
[ ] ( x -- x ) call-effect-unsafe?
] unit-test
[ t ] [ \ + ( a b -- c ) execute-effect-unsafe? ] unit-test
[ t ] [ \ + ( a b c -- d e ) execute-effect-unsafe? ] unit-test
[ f ] [ \ + ( a b c -- d ) execute-effect-unsafe? ] unit-test

View File

@ -57,9 +57,6 @@ M: quotation cached-effect
dup cached-effect-valid?
[ cached-effect>> ] [ [ safe-infer dup ] keep save-effect ] if ;
: call-effect-unsafe? ( cached-effect effect -- ? )
over +unknown+ eq? [ 2drop f ] [ effect<= ] if ;
: call-effect-slow>quot ( effect -- quot )
[ \ call-effect def>> curry ] [ add-effect-input ] bi
'[ _ _ call-effect-unsafe ] ;
@ -70,8 +67,13 @@ M: quotation cached-effect
\ call-effect-slow t "no-compile" set-word-prop
: call-effect-unsafe? ( quot effect -- ? )
[ cached-effect ] dip
over +unknown+ eq?
[ 2drop f ] [ [ { effect } declare ] dip effect<= ] if ; inline
: call-effect-fast ( quot effect inline-cache -- )
2over [ cached-effect ] dip call-effect-unsafe?
2over call-effect-unsafe?
[ [ nip update-inline-cache ] [ drop call-effect-unsafe ] 3bi ]
[ drop call-effect-slow ]
if ; inline