1 IN: compiler.cfg.dominance.tests
2 USING: tools.test sequences vectors namespaces kernel accessors assocs sets
3 math.ranges arrays compiler.cfg compiler.cfg.dominance compiler.cfg.debugger
4 compiler.cfg.predecessors ;
6 : test-dominance ( -- )
11 ! Example with no back edges
19 0 get 1 get 2 get V{ } 2sequence >>successors drop
20 1 get 3 get 1vector >>successors drop
21 2 get 4 get 1vector >>successors drop
22 3 get 4 get 1vector >>successors drop
23 4 get 5 get 1vector >>successors drop
25 [ ] [ test-dominance ] unit-test
27 [ t ] [ 0 get dom-parent 0 get eq? ] unit-test
28 [ t ] [ 1 get dom-parent 0 get eq? ] unit-test
29 [ t ] [ 2 get dom-parent 0 get eq? ] unit-test
30 [ t ] [ 4 get dom-parent 0 get eq? ] unit-test
31 [ t ] [ 3 get dom-parent 1 get eq? ] unit-test
32 [ t ] [ 5 get dom-parent 4 get eq? ] unit-test
34 [ t ] [ 0 get dom-children 1 get 2 get 4 get 3array set= ] unit-test
36 [ { 4 } ] [ 1 get dom-frontier [ number>> ] map ] unit-test
37 [ { 4 } ] [ 2 get dom-frontier [ number>> ] map ] unit-test
38 [ { } ] [ 0 get dom-frontier ] unit-test
39 [ { } ] [ 4 get dom-frontier ] unit-test
41 ! Example from the paper
48 0 get 1 get 2 get V{ } 2sequence >>successors drop
49 1 get 3 get 1vector >>successors drop
50 2 get 4 get 1vector >>successors drop
51 3 get 4 get 1vector >>successors drop
52 4 get 3 get 1vector >>successors drop
54 [ ] [ test-dominance ] unit-test
56 [ t ] [ 0 4 [a,b] [ get dom-parent 0 get eq? ] all? ] unit-test
58 ! The other example from the paper
66 0 get 1 get 2 get V{ } 2sequence >>successors drop
67 1 get 5 get 1vector >>successors drop
68 2 get 4 get 3 get V{ } 2sequence >>successors drop
69 5 get 4 get 1vector >>successors drop
70 4 get 5 get 3 get V{ } 2sequence >>successors drop
71 3 get 4 get 1vector >>successors drop
73 [ ] [ test-dominance ] unit-test
75 [ t ] [ 0 5 [a,b] [ get dom-parent 0 get eq? ] all? ] unit-test
85 0 get 1 get 5 get V{ } 2sequence >>successors drop
86 1 get 2 get 3 get V{ } 2sequence >>successors drop
87 2 get 4 get 1vector >>successors drop
88 3 get 4 get 1vector >>successors drop
89 4 get 6 get 1vector >>successors drop
90 5 get 6 get 1vector >>successors drop
92 [ ] [ test-dominance ] unit-test
95 2 get 3 get 2array iterated-dom-frontier
96 4 get 6 get 2array set=