compiler.cfg.gvn: convert expressions, graph, and misc to before the half-baked avail stuff
parent
ffe70b55e9
commit
d81d3c8b68
|
@ -88,4 +88,4 @@ M: ##load-reference >expr obj>> <reference-expr> ;
|
||||||
! phi equivalences
|
! phi equivalences
|
||||||
|
|
||||||
M: ##phi >expr
|
M: ##phi >expr
|
||||||
inputs>> values [ vreg>leader ] map \ ##phi prefix ;
|
inputs>> values [ vreg>vn ] map \ ##phi prefix ;
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
! Copyright (C) 2008, 2010 Slava Pestov.
|
! Copyright (C) 2008, 2010 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: accessors compiler.cfg.gvn.avail kernel math namespaces
|
USING: accessors kernel math namespaces assocs ;
|
||||||
assocs ;
|
|
||||||
IN: compiler.cfg.gvn.graph
|
IN: compiler.cfg.gvn.graph
|
||||||
|
|
||||||
SYMBOL: input-expr-counter
|
SYMBOL: input-expr-counter
|
||||||
|
@ -25,10 +24,7 @@ SYMBOL: final-iteration?
|
||||||
|
|
||||||
: vn>insn ( vn -- insn ) vns>insns get at ;
|
: vn>insn ( vn -- insn ) vns>insns get at ;
|
||||||
|
|
||||||
: vreg>leader ( vreg -- vn ) vregs>vns get at ;
|
: vreg>vn ( vreg -- vn ) vregs>vns get at ;
|
||||||
|
|
||||||
: vreg>vn ( vreg -- vn )
|
|
||||||
dup vreg>leader dup available? [ nip ] [ drop ] if ;
|
|
||||||
|
|
||||||
: set-vn ( vn vreg -- )
|
: set-vn ( vn vreg -- )
|
||||||
vregs>vns get maybe-set-at [ changed? on ] when ;
|
vregs>vns get maybe-set-at [ changed? on ] when ;
|
||||||
|
|
|
@ -16,7 +16,7 @@ M: ##replace rewrite
|
||||||
] [ 2drop f ] if ;
|
] [ 2drop f ] if ;
|
||||||
|
|
||||||
M: ##phi rewrite
|
M: ##phi rewrite
|
||||||
[ dst>> ] [ inputs>> values [ vreg>leader ] map sift ] bi
|
[ dst>> ] [ inputs>> values [ vreg>vn ] map sift ] bi
|
||||||
dup all-equal? [
|
dup all-equal? [
|
||||||
[ drop f ]
|
[ drop f ]
|
||||||
[ first <copy> ] if-empty
|
[ first <copy> ] if-empty
|
||||||
|
|
Loading…
Reference in New Issue