1 USING: accessors arrays assocs compiler.cfg
2 compiler.cfg.dataflow-analysis.private compiler.cfg.instructions
3 compiler.cfg.linearization compiler.cfg.registers
4 compiler.cfg.utilities compiler.cfg.stacks.vacant kernel math sequences sorting
6 IN: compiler.cfg.stacks.vacant.tests
9 { { { } { 0 0 0 } } { { } { 0 } } }
11 { { 4 { 3 2 1 -3 0 -2 -1 } } { 0 { -1 } } } state>gc-data
14 ! Replace -1, then gc. Peek is ok here because the -1 should be
18 T{ ##replace { src 10 } { loc D -1 } }
19 T{ ##alien-invoke { gc-map T{ gc-map { scrub-d { } } } } }
20 T{ ##peek { dst 0 } { loc D -1 } }
22 [ insns>cfg fill-gc-maps ]
23 [ second gc-map>> check-d>> ] bi
26 ! Replace -1, then gc. Peek is ok here because the -1 should be
30 T{ ##replace { src 10 } { loc D -1 } }
31 T{ ##alien-invoke { gc-map T{ gc-map { scrub-d { } } } } }
32 T{ ##peek { dst 0 } { loc D -1 } }
34 [ insns>cfg fill-gc-maps ]
35 [ second gc-map>> check-d>> ] bi
38 ! visit-insn should set the gc info.
40 { { 2 { } } { 0 { } } }
41 T{ ##alien-invoke { gc-map T{ gc-map } } }
42 [ gc-map>> set-gc-map ] keep gc-map>> [ scrub-d>> ] [ scrub-r>> ] bi