factor/basis/compiler/cfg/value-numbering/value-numbering.factor

24 lines
792 B
Factor
Raw Normal View History

2008-10-19 02:10:21 -04:00
! Copyright (C) 2008 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
2008-10-22 22:59:07 -04:00
USING: namespaces assocs biassocs classes kernel math accessors
sorting sets sequences
compiler.cfg.liveness
2008-10-22 22:59:07 -04:00
compiler.cfg.value-numbering.graph
compiler.cfg.value-numbering.expressions
compiler.cfg.value-numbering.propagate
2008-10-23 03:49:26 -04:00
compiler.cfg.value-numbering.simplify
compiler.cfg.value-numbering.rewrite ;
2008-10-19 02:10:21 -04:00
IN: compiler.cfg.value-numbering
: number-input-values ( basic-block -- )
live-in keys [ [ next-input-expr ] dip set-vn ] each ;
: value-numbering-step ( basic-block -- )
2008-10-19 02:10:21 -04:00
init-value-graph
init-expressions
dup number-input-values
[ [ [ number-values ] [ rewrite propagate ] bi ] map ] change-instructions drop ;
: value-numbering ( rpo -- )
[ value-numbering-step ] each ;