Fix another literal killing bug
parent
c9f07af111
commit
09c5d95f32
|
@ -76,7 +76,7 @@ M: #killable live-values* ( node -- seq ) drop { } ;
|
|||
! #label
|
||||
M: #label live-values* ( node -- seq )
|
||||
dup node-child node-in-d over node-in-d 2array
|
||||
rot collect-recursion append purge-invariants ;
|
||||
swap collect-recursion append purge-invariants ;
|
||||
|
||||
! branching
|
||||
UNION: #branch #if #dispatch ;
|
||||
|
|
|
@ -25,12 +25,9 @@ DEFER: optimize-node
|
|||
over set-node-successor r> r> r> or or
|
||||
] [ r> ] if ;
|
||||
|
||||
: (optimize) ( dataflow n -- dataflow n ? )
|
||||
>r dup kill-values dup infer-classes optimize-node r> swap
|
||||
[ 1+ (optimize) ] when ;
|
||||
|
||||
: 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 )
|
||||
over >r call [ r> node-successor ] [ r> drop t ] if ;
|
||||
|
@ -39,8 +36,7 @@ DEFER: optimize-node
|
|||
! Generic nodes
|
||||
M: f optimize-node* drop t ;
|
||||
|
||||
M: node optimize-node* ( node -- t )
|
||||
drop t ;
|
||||
M: node optimize-node* ( node -- t ) drop t ;
|
||||
|
||||
! #shuffle
|
||||
: can-compose? ( shuffle -- ? )
|
||||
|
|
|
@ -1,8 +1,8 @@
|
|||
IN: temporary
|
||||
USING: arrays assembler compiler compiler-backend generic
|
||||
hashtables inference kernel kernel-internals lists math
|
||||
optimizer prettyprint sequences strings test vectors words
|
||||
sequences-internals ;
|
||||
IN: temporary
|
||||
|
||||
: kill-1
|
||||
[ 1 2 3 ] [ + ] over drop drop ; compiled
|
||||
|
|
Loading…
Reference in New Issue