compiler.cfg.gvn.misc: simplify ##phi rewrite
parent
4b28eeaf21
commit
ad0a2e78b3
|
@ -84,5 +84,8 @@ M: ##load-integer >expr val>> <integer-expr> ;
|
||||||
|
|
||||||
M: ##load-reference >expr obj>> <reference-expr> ;
|
M: ##load-reference >expr obj>> <reference-expr> ;
|
||||||
|
|
||||||
|
! TODO experiment with sorting, in case that identifies more
|
||||||
|
! phi equivalences
|
||||||
|
|
||||||
M: ##phi >expr
|
M: ##phi >expr
|
||||||
inputs>> values [ vreg>vn ] map \ ##phi prefix ;
|
inputs>> values [ vreg>vn ] map \ ##phi prefix ;
|
||||||
|
|
|
@ -16,10 +16,8 @@ M: ##replace rewrite
|
||||||
] [ 2drop f ] if ;
|
] [ 2drop f ] if ;
|
||||||
|
|
||||||
M: ##phi rewrite
|
M: ##phi rewrite
|
||||||
[ dst>> ] [ inputs>> values [ vreg>vn ] map ] bi
|
[ dst>> ] [ inputs>> values [ vreg>vn ] map sift ] bi
|
||||||
dup sift
|
|
||||||
dup all-equal? [
|
dup all-equal? [
|
||||||
nip
|
|
||||||
[ drop f ]
|
[ drop f ]
|
||||||
[ first <copy> ] if-empty
|
[ first <copy> ] if-empty
|
||||||
] [ 3drop f ] if ;
|
] [ 2drop f ] if ;
|
||||||
|
|
Loading…
Reference in New Issue