Eliminate some usages of locals in compiler.tree.dead-code

db4
Slava Pestov 2008-12-09 01:04:15 -06:00
parent 5443217876
commit db92c90569
1 changed files with 12 additions and 15 deletions

View File

@ -22,14 +22,11 @@ M: #call-recursive compute-live-values*
[ out-d>> ] [ label>> return>> in-d>> ] bi look-at-mapping ; [ out-d>> ] [ label>> return>> in-d>> ] bi look-at-mapping ;
:: drop-dead-inputs ( inputs outputs -- #shuffle ) :: drop-dead-inputs ( inputs outputs -- #shuffle )
[let* | live-inputs [ inputs filter-live ] inputs filter-live
new-live-inputs [ outputs inputs filter-corresponding make-values ] | outputs inputs filter-corresponding make-values
live-inputs outputs
new-live-inputs inputs
outputs drop-values ;
inputs
drop-values
] ;
M: #enter-recursive remove-dead-code* M: #enter-recursive remove-dead-code*
[ filter-live ] change-out-d ; [ filter-live ] change-out-d ;
@ -79,12 +76,12 @@ M: #call-recursive remove-dead-code*
bi bi
] ; ] ;
M:: #recursive remove-dead-code* ( node -- nodes ) M: #recursive remove-dead-code* ( node -- nodes )
[let* | drop-inputs [ node drop-recursive-inputs ] [ drop-recursive-inputs ]
drop-outputs [ node drop-recursive-outputs ] | [
node [ (remove-dead-code) ] change-child drop [ (remove-dead-code) ] change-child
node label>> [ filter-live ] change-enter-out drop dup label>> [ filter-live ] change-enter-out drop
{ drop-inputs node drop-outputs } ]
] ; [ drop-recursive-outputs ] tri 3array ;
M: #return-recursive remove-dead-code* ; M: #return-recursive remove-dead-code* ;