compiler.tree.dead-code.simple: small refactoring and docs
parent
097b40ce41
commit
e1b22e0af4
|
@ -0,0 +1,10 @@
|
||||||
|
USING: compiler.tree help.markup help.syntax sequences ;
|
||||||
|
IN: compiler.tree.dead-code.simple
|
||||||
|
|
||||||
|
HELP: filter-corresponding
|
||||||
|
{ $values { "new" sequence } { "old" sequence } { "old'" sequence } }
|
||||||
|
{ $description "Remove elements from 'old' if the element with the same index in 'new' is dead." } ;
|
||||||
|
|
||||||
|
HELP: flushable-call?
|
||||||
|
{ $values { "#call" #call } { "?" "boolean" } }
|
||||||
|
{ $description { $link t } " if the call is flushable" } ;
|
|
@ -2,17 +2,17 @@
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors arrays assocs classes.algebra combinators
|
USING: accessors arrays assocs classes.algebra combinators
|
||||||
compiler.tree compiler.tree.dead-code.liveness
|
compiler.tree compiler.tree.dead-code.liveness
|
||||||
compiler.tree.propagation.info fry kernel locals math
|
compiler.tree.propagation.info fry kernel locals math math.private
|
||||||
math.private namespaces sequences stack-checker.backend
|
namespaces sequences stack-checker.backend stack-checker.dependencies
|
||||||
stack-checker.dependencies words ;
|
words ;
|
||||||
IN: compiler.tree.dead-code.simple
|
IN: compiler.tree.dead-code.simple
|
||||||
|
|
||||||
: flushable-call? ( #call -- ? )
|
: flushable-call? ( #call -- ? )
|
||||||
dup word>> dup flushable? [
|
dup word>> dup flushable? [
|
||||||
"input-classes" word-prop dup [
|
"input-classes" word-prop [ drop t ] [
|
||||||
[ node-input-infos ] dip
|
[ node-input-infos ] dip
|
||||||
[ [ class>> ] dip class<= ] 2all?
|
[ [ class>> ] dip class<= ] 2all?
|
||||||
] [ 2drop t ] if
|
] if-empty
|
||||||
] [ 2drop f ] if ;
|
] [ 2drop f ] if ;
|
||||||
|
|
||||||
M: #call mark-live-values*
|
M: #call mark-live-values*
|
||||||
|
@ -41,8 +41,6 @@ M: #alien-node compute-live-values* nip look-at-inputs ;
|
||||||
live-values get '[ drop _ key? ] assoc-filter ;
|
live-values get '[ drop _ key? ] assoc-filter ;
|
||||||
|
|
||||||
: filter-corresponding ( new old -- old' )
|
: filter-corresponding ( new old -- old' )
|
||||||
! Remove elements from 'old' if the element with the same
|
|
||||||
! index in 'new' is dead.
|
|
||||||
zip filter-mapping values ;
|
zip filter-mapping values ;
|
||||||
|
|
||||||
: filter-live ( values -- values' )
|
: filter-live ( values -- values' )
|
||||||
|
|
Loading…
Reference in New Issue