compiler.cfg.gvn: gut it down to just identifying value numbers for now
parent
d81d3c8b68
commit
f29bebaa0e
|
@ -60,9 +60,8 @@ M: array process-instruction
|
||||||
clear-exprs
|
clear-exprs
|
||||||
[ value-numbering-step drop ] simple-analysis ;
|
[ value-numbering-step drop ] simple-analysis ;
|
||||||
|
|
||||||
: identify-redundancies ( cfg -- )
|
: determine-value-numbers ( cfg -- )
|
||||||
final-iteration? off
|
final-iteration? off
|
||||||
! dup compute-avail-sets
|
|
||||||
init-value-graph
|
init-value-graph
|
||||||
'[
|
'[
|
||||||
changed? off
|
changed? off
|
||||||
|
@ -70,22 +69,9 @@ M: array process-instruction
|
||||||
changed? get
|
changed? get
|
||||||
] loop ;
|
] loop ;
|
||||||
|
|
||||||
: eliminate-redundancies ( cfg -- )
|
|
||||||
final-iteration? on
|
|
||||||
! dup compute-avail-sets
|
|
||||||
clear-exprs
|
|
||||||
[ value-numbering-step ] simple-optimization ;
|
|
||||||
|
|
||||||
USE: prettyprint
|
|
||||||
|
|
||||||
: value-numbering ( cfg -- cfg )
|
: value-numbering ( cfg -- cfg )
|
||||||
needs-predecessors
|
needs-predecessors
|
||||||
|
|
||||||
dup compute-avail-sets
|
dup determine-value-numbers
|
||||||
|
|
||||||
! avail-ins get [ [ number>> ] [ keys ] bi* ] assoc-map .
|
|
||||||
|
|
||||||
dup identify-redundancies
|
|
||||||
dup eliminate-redundancies
|
|
||||||
|
|
||||||
cfg-changed predecessors-changed ;
|
cfg-changed predecessors-changed ;
|
||||||
|
|
Loading…
Reference in New Issue