factor/basis/compiler/tree/dead-code/recursive/recursive.factor

32 lines
983 B
Factor
Raw Normal View History

2008-08-13 19:56:50 -04:00
! Copyright (C) 2008 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors sequences kernel
compiler.tree compiler.tree.dead-code.branches
compiler.tree.dead-code.liveness
compiler.tree.dead-code.simple ;
IN: compiler.tree.dead-code.recursive
M: #enter-recursive compute-live-values*
2008-08-14 00:52:49 -04:00
[ out-d>> ] [ recursive-phi-in ] bi look-at-phi ;
2008-08-13 19:56:50 -04:00
: return-recursive-phi-in ( #return-recursive -- phi-in )
[ label>> calls>> [ in-d>> ] map ] [ in-d>> ] bi suffix ;
M: #return-recursive compute-live-values*
2008-08-14 00:52:49 -04:00
[ out-d>> ] [ return-recursive-phi-in ] bi look-at-phi ;
2008-08-13 19:56:50 -04:00
M: #recursive remove-dead-code*
[ filter-live ] change-in-d ;
M: #call-recursive remove-dead-code*
[ filter-live ] change-in-d
[ filter-live ] change-out-d ;
M: #enter-recursive remove-dead-code*
[ filter-live ] change-in-d
[ filter-live ] change-out-d ;
M: #return-recursive remove-dead-code*
[ filter-live ] change-in-d
[ filter-live ] change-out-d ;