! Copyright (C) 2011 Alex Vondrak.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs hashtables kernel namespaces sequences
-sequences.extras sets
+sets
compiler.cfg
compiler.cfg.dataflow-analysis
compiler.cfg.def-use
: available? ( vn -- ? ) basic-block get avail-in key? ;
+: best-vreg ( available-vregs -- vreg )
+ [ f ] [ infimum ] if-empty ;
+
: >avail-vreg ( vreg -- vreg/f )
final-iteration? get [
- congruence-class [ available? ] filter ?infimum
+ congruence-class [ available? ] filter best-vreg
] when ;
: available-uses? ( insn -- ? )