compiler.tree.propagation.call-effect: changing back call-effect-unsafe?, changing it made all images to large for some reason
parent
92165e4ee7
commit
eda9535ce6
|
@ -16,6 +16,12 @@ IN: compiler.tree.propagation.call-effect.tests
|
||||||
100 [ sq ] ( a -- b ) call-effect-slow>quot call
|
100 [ sq ] ( a -- b ) call-effect-slow>quot call
|
||||||
] unit-test
|
] 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 ) execute-effect-unsafe? ] unit-test
|
||||||
[ t ] [ \ + ( a b c -- d e ) 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
|
[ f ] [ \ + ( a b c -- d ) execute-effect-unsafe? ] unit-test
|
||||||
|
|
|
@ -57,9 +57,6 @@ M: quotation cached-effect
|
||||||
dup cached-effect-valid?
|
dup cached-effect-valid?
|
||||||
[ cached-effect>> ] [ [ safe-infer dup ] keep save-effect ] if ;
|
[ 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-slow>quot ( effect -- quot )
|
||||||
[ \ call-effect def>> curry ] [ add-effect-input ] bi
|
[ \ call-effect def>> curry ] [ add-effect-input ] bi
|
||||||
'[ _ _ call-effect-unsafe ] ;
|
'[ _ _ call-effect-unsafe ] ;
|
||||||
|
@ -70,8 +67,13 @@ M: quotation cached-effect
|
||||||
|
|
||||||
\ call-effect-slow t "no-compile" set-word-prop
|
\ 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 -- )
|
: 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 ]
|
[ [ nip update-inline-cache ] [ drop call-effect-unsafe ] 3bi ]
|
||||||
[ drop call-effect-slow ]
|
[ drop call-effect-slow ]
|
||||||
if ; inline
|
if ; inline
|
||||||
|
|
Loading…
Reference in New Issue