1 USING: accessors assocs compiler.cfg.linearization
2 compiler.cfg.linearization.private compiler.cfg.utilities
3 compiler.test kernel make namespaces sequences tools.test ;
4 IN: compiler.cfg.linearization.tests
17 0 get block>cfg linearization-order [ number>> ] map
20 : two-successors-cfg ( -- cfg )
22 [ V{ } 20 insns>block connect-bbs ] keep
23 [ V{ } 30 insns>block connect-bbs ] keep
26 ! (linearization-order)
28 two-successors-cfg (linearization-order) [ number>> ] map
32 6 iota [ V{ } clone over insns>block ] { } map>assoc dup
34 { 0 1 } { 0 2 } { 0 5 }
39 0 of block>cfg (linearization-order)
45 HS{ } clone visited set
46 V{ } 10 insns>block [ process-block ] V{ } make
52 two-successors-cfg linearization-order dup number-blocks [ number>> ] map