     dup >expr dup exprs>vns get at
     [ redundant-instruction ] [ useful-instruction ] ?if ;
 
-M: ##phi value-number
-    dup inputs>> values [ vreg>vn ] map sift
-    dup all-equal? [
-        [ drop ] [ first redundant-instruction ] if-empty
-    ] [ drop check-redundancy ] if ;
+! M: ##phi value-number
+!     dup inputs>> values [ vreg>vn ] map sift
+!     dup all-equal? [
+!         [ drop ] [ first redundant-instruction ] if-empty
+!     ] [ drop check-redundancy ] if ;
 
 M: insn value-number
     dup defs-vregs length 1 = [ check-redundancy ] [ drop ] if ;

        changed? get
    ] loop ;

: value-numbering ( cfg -- cfg )
    needs-predecessors
    dup determine-value-numbers

    cfg-changed predecessors-changed ;

M: array simplify [ simplify ] map ;
M: ##copy simplify ;

! ! ! Global value numbering

GENERIC: value-number ( insn -- )

M: array value-number [ value-number ] each ;
