1 USING: accessors compiler.cfg compiler.cfg.copy-prop compiler.cfg.debugger
2 compiler.cfg.instructions compiler.cfg.registers compiler.cfg.utilities
3 cpu.architecture kernel namespaces tools.test ;
4 IN: compiler.cfg.copy-prop.tests
6 : test-copy-propagation ( -- )
7 0 get block>cfg copy-propagation ;
26 T{ ##copy f 2 0 any-rep }
31 T{ ##phi f 3 H{ { 2 0 } { 3 2 } } }
32 T{ ##phi f 4 H{ { 2 1 } { 3 2 } } }
33 T{ ##phi f 5 H{ { 2 1 } { 3 0 } } }
38 T{ ##copy f 6 4 any-rep }
39 T{ ##replace f 3 D 0 }
40 T{ ##replace f 5 D 1 }
41 T{ ##replace f 6 D 2 }
56 [ ] [ test-copy-propagation ] unit-test
60 T{ ##replace f 0 D 0 }
61 T{ ##replace f 4 D 1 }
62 T{ ##replace f 4 D 2 }
65 ] [ 5 get instructions>> ] unit-test
67 ! Test optimistic assumption
79 T{ ##phi f 1 H{ { 1 0 } { 2 2 } } }
80 T{ ##copy f 2 1 any-rep }
85 T{ ##replace f 2 D 1 }
99 [ ] [ test-copy-propagation ] unit-test
103 T{ ##replace f 0 D 1 }
106 ] [ 3 get instructions>> ] unit-test