Fix another literal killing bug
parent
c9f07af111
commit
09c5d95f32
|
@ -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 ;
|
||||||
|
|
|
@ -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 -- ? )
|
||||||
|
|
|
@ -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
|
||||||
|
|
Loading…
Reference in New Issue