]> gitweb.factorcode.org Git - factor.git/blob - basis/compiler/cfg/stacks/global/global.factor
sets: rename combine/refine to union-all/intersect-all
[factor.git] / basis / compiler / cfg / stacks / global / global.factor
1 ! Copyright (C) 2009 Slava Pestov.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors compiler.cfg.dataflow-analysis kernel sequences sets ;
4 IN: compiler.cfg.stacks.global
5
6 : transfer-peeked-locs ( set bb -- set' )
7     [ replaces>> diff ] [ peeks>> union ] bi ;
8
9 BACKWARD-ANALYSIS: anticip
10
11 M: anticip transfer-set drop transfer-peeked-locs ;
12 M: anticip join-sets 2drop intersect-all ;
13
14 BACKWARD-ANALYSIS: live
15
16 M: live transfer-set drop transfer-peeked-locs ;
17 M: live join-sets 2drop union-all ;
18
19 FORWARD-ANALYSIS: avail
20
21 M: avail transfer-set ( in-set bb dfa -- out-set )
22     drop [ peeks>> ] [ replaces>> ] bi union union ;
23 M: avail join-sets 2drop intersect-all ;
24
25 FORWARD-ANALYSIS: pending
26
27 M: pending transfer-set
28     drop replaces>> union ;
29 M: pending join-sets 2drop intersect-all ;
30
31 BACKWARD-ANALYSIS: dead
32
33 M: dead transfer-set
34     drop [ kills>> ] [ replaces>> ] bi union union ;
35 M: dead join-sets 2drop intersect-all ;