Fix another literal killing bug

release
slava 2006-03-06 00:42:14 +00:00
parent c9f07af111
commit 09c5d95f32
3 changed files with 5 additions and 9 deletions

View File

@ -76,7 +76,7 @@ M: #killable live-values* ( node -- seq ) drop { } ;
! #label ! #label
M: #label live-values* ( node -- seq ) M: #label live-values* ( node -- seq )
dup node-child node-in-d over node-in-d 2array dup node-child node-in-d over node-in-d 2array
rot collect-recursion append purge-invariants ; swap collect-recursion append purge-invariants ;
! branching ! branching
UNION: #branch #if #dispatch ; UNION: #branch #if #dispatch ;

View File

@ -25,12 +25,9 @@ DEFER: optimize-node
over set-node-successor r> r> r> or or over set-node-successor r> r> r> or or
] [ r> ] if ; ] [ r> ] if ;
: (optimize) ( dataflow n -- dataflow n ? )
>r dup kill-values dup infer-classes optimize-node r> swap
[ 1+ (optimize) ] when ;
: optimize ( dataflow -- dataflow ) : optimize ( dataflow -- dataflow )
1 (optimize) [ "! Optimizer passes: " % # ] "" make print ; dup kill-values dup infer-classes optimize-node
[ optimize ] when ;
: prune-if ( node quot -- successor/t ) : prune-if ( node quot -- successor/t )
over >r call [ r> node-successor ] [ r> drop t ] if ; over >r call [ r> node-successor ] [ r> drop t ] if ;
@ -39,8 +36,7 @@ DEFER: optimize-node
! Generic nodes ! Generic nodes
M: f optimize-node* drop t ; M: f optimize-node* drop t ;
M: node optimize-node* ( node -- t ) M: node optimize-node* ( node -- t ) drop t ;
drop t ;
! #shuffle ! #shuffle
: can-compose? ( shuffle -- ? ) : can-compose? ( shuffle -- ? )

View File

@ -1,8 +1,8 @@
IN: temporary
USING: arrays assembler compiler compiler-backend generic USING: arrays assembler compiler compiler-backend generic
hashtables inference kernel kernel-internals lists math hashtables inference kernel kernel-internals lists math
optimizer prettyprint sequences strings test vectors words optimizer prettyprint sequences strings test vectors words
sequences-internals ; sequences-internals ;
IN: temporary
: kill-1 : kill-1
[ 1 2 3 ] [ + ] over drop drop ; compiled [ 1 2 3 ] [ + ] over drop drop ; compiled