! Copyright (C) 2011 Alex Vondrak.
! See http://factorcode.org/license.txt for BSD license.
-USING: accessors assocs hashtables kernel namespaces sequences
-sets
-compiler.cfg
-compiler.cfg.dataflow-analysis
-compiler.cfg.def-use
-compiler.cfg.gvn.graph
-compiler.cfg.predecessors
-compiler.cfg.renaming.functor
-compiler.cfg.rpo ;
-FROM: assocs => change-at ;
-FROM: namespaces => set ;
+USING: accessors assocs compiler.cfg
+compiler.cfg.dataflow-analysis compiler.cfg.def-use
+compiler.cfg.gvn.graph compiler.cfg.renaming.functor
+compiler.utilities hashtables kernel namespaces sequences ;
IN: compiler.cfg.gvn.avail
: defined ( bb -- vregs )
FORWARD-ANALYSIS: avail
-M: avail-analysis transfer-set drop defined assoc-union ;
+M: avail transfer-set drop defined assoc-union ;
: available? ( vn -- ? ) basic-block get avail-in key? ;
keep swap [ available-uses? ] [ drop f ] if ; inline
: make-available ( vreg -- )
- basic-block get avail-ins get [ dupd clone ?set-at ] change-at ;
+ basic-block get avail-ins get [ dupd clone ?set-at ] assocs:change-at ;
RENAMING: >avail [ ] [ dup >avail-vreg swap or ] [ ]