1 USING: alien.syntax compiler.cfg.instructions compiler.cfg.registers
2 compiler.cfg.ssa.destruction compiler.cfg.ssa.destruction.leaders
3 compiler.cfg.ssa.destruction.private compiler.cfg.utilities
4 cpu.architecture cpu.x86.assembler.operands kernel make namespaces
6 IN: compiler.cfg.ssa.destruction.tests
8 : setup-leader/reps-scenario ( -- )
9 ! Note the differences in representation.
10 H{ { 45 45 } { 46 45 } { 47 47 } { 100 47 } } leader-map set
16 } representations set ;
20 V{ T{ ##copy { dst 100 } { src 46 } } }
22 setup-leader/reps-scenario
23 T{ ##copy { src 46 } { dst 100 } } [ cleanup-insn ] V{ } make
26 ! I think the difference is because ##parallel-copy may encode a swap
29 V{ T{ ##copy { dst 47 } { src 45 } { rep double-2-rep } } }
31 setup-leader/reps-scenario
32 T{ ##parallel-copy { values V{ { 100 46 } } } } [ cleanup-insn ] V{ } make
36 T{ ##parallel-copy { values V{ } } }
37 [ cleanup-insn ] V{ } make
42 H{ { 36 23 } { 23 23 } } leader-map set
43 H{ { 36 int-rep } { 37 tagged-rep } } representations set
46 { reg-inputs V{ { 56 int-rep RDI } } }
48 { reg-outputs { { 36 int-rep RAX } } }
52 { symbols "g_quark_to_string" }
53 { dll DLL" libglib-2.0.so" }
54 { gc-map T{ gc-map } }
57 T{ ##call-gc { gc-map T{ gc-map } } }
64 } 0 insns>block block>cfg destruct-ssa