26 lines
638 B
Factor
26 lines
638 B
Factor
|
! Copyright (C) 2008 Slava Pestov.
|
||
|
! See http://factorcode.org/license.txt for BSD license.
|
||
|
USING: accessors sequences kernel
|
||
|
compiler.cfg
|
||
|
compiler.cfg.predecessors
|
||
|
compiler.cfg.stack
|
||
|
compiler.cfg.alias
|
||
|
compiler.cfg.write-barrier
|
||
|
compiler.cfg.elaboration
|
||
|
compiler.cfg.vn
|
||
|
compiler.cfg.vn.conditions
|
||
|
compiler.cfg.kill-nops ;
|
||
|
IN: compiler.cfg.simplifier
|
||
|
|
||
|
: simplify ( insns -- insns' )
|
||
|
normalize-height
|
||
|
alias-analysis
|
||
|
elaboration
|
||
|
value-numbering
|
||
|
eliminate-write-barrier
|
||
|
kill-nops ;
|
||
|
|
||
|
: simplify-cfg ( procedure -- procedure )
|
||
|
dup compute-predecessors
|
||
|
dup [ [ simplify ] change-instructions drop ] each-block ;
|