2009-07-02 03:30:46 -04:00
|
|
|
! Copyright (C) 2009 Daniel Ehrenberg.
|
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
2014-11-07 13:02:14 -05:00
|
|
|
USING: accessors kernel compiler.cfg compiler.cfg.dce compiler.cfg.instructions
|
|
|
|
compiler.cfg.registers compiler.cfg.utilities cpu.architecture tools.test ;
|
2009-07-02 03:30:46 -04:00
|
|
|
IN: compiler.cfg.dce.tests
|
|
|
|
|
|
|
|
: test-dce ( insns -- insns' )
|
2014-12-10 20:36:37 -05:00
|
|
|
insns>cfg dup eliminate-dead-code entry>> instructions>> ;
|
2009-07-02 03:30:46 -04:00
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ V{
|
2010-04-21 03:08:52 -04:00
|
|
|
T{ ##load-integer { dst 1 } { val 8 } }
|
|
|
|
T{ ##load-integer { dst 2 } { val 16 } }
|
2009-08-08 05:02:18 -04:00
|
|
|
T{ ##add { dst 3 } { src1 1 } { src2 2 } }
|
2017-08-26 14:30:18 -04:00
|
|
|
T{ ##replace { src 3 } { loc d: 0 } }
|
2015-07-03 12:39:59 -04:00
|
|
|
} } [ V{
|
2010-04-21 03:08:52 -04:00
|
|
|
T{ ##load-integer { dst 1 } { val 8 } }
|
|
|
|
T{ ##load-integer { dst 2 } { val 16 } }
|
2009-08-08 05:02:18 -04:00
|
|
|
T{ ##add { dst 3 } { src1 1 } { src2 2 } }
|
2017-08-26 14:30:18 -04:00
|
|
|
T{ ##replace { src 3 } { loc d: 0 } }
|
2009-07-02 03:30:46 -04:00
|
|
|
} test-dce ] unit-test
|
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ V{ } } [ V{
|
2010-04-21 03:08:52 -04:00
|
|
|
T{ ##load-integer { dst 1 } { val 8 } }
|
|
|
|
T{ ##load-integer { dst 2 } { val 16 } }
|
2009-08-08 05:02:18 -04:00
|
|
|
T{ ##add { dst 3 } { src1 1 } { src2 2 } }
|
2009-07-02 03:30:46 -04:00
|
|
|
} test-dce ] unit-test
|
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ V{ } } [ V{
|
2010-04-21 03:08:52 -04:00
|
|
|
T{ ##load-integer { dst 3 } { val 8 } }
|
2009-08-08 05:02:18 -04:00
|
|
|
T{ ##allot { dst 1 } { temp 2 } }
|
2009-07-02 03:30:46 -04:00
|
|
|
} test-dce ] unit-test
|
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ V{ } } [ V{
|
2010-04-21 03:08:52 -04:00
|
|
|
T{ ##load-integer { dst 3 } { val 8 } }
|
2009-08-08 05:02:18 -04:00
|
|
|
T{ ##allot { dst 1 } { temp 2 } }
|
|
|
|
T{ ##set-slot-imm { obj 1 } { src 3 } }
|
2009-07-02 03:30:46 -04:00
|
|
|
} test-dce ] unit-test
|
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ V{
|
2010-04-21 03:08:52 -04:00
|
|
|
T{ ##load-integer { dst 3 } { val 8 } }
|
2009-08-08 05:02:18 -04:00
|
|
|
T{ ##allot { dst 1 } { temp 2 } }
|
|
|
|
T{ ##set-slot-imm { obj 1 } { src 3 } }
|
2017-08-26 14:30:18 -04:00
|
|
|
T{ ##replace { src 1 } { loc d: 0 } }
|
2015-07-03 12:39:59 -04:00
|
|
|
} } [ V{
|
2010-04-21 03:08:52 -04:00
|
|
|
T{ ##load-integer { dst 3 } { val 8 } }
|
2009-08-08 05:02:18 -04:00
|
|
|
T{ ##allot { dst 1 } { temp 2 } }
|
|
|
|
T{ ##set-slot-imm { obj 1 } { src 3 } }
|
2017-08-26 14:30:18 -04:00
|
|
|
T{ ##replace { src 1 } { loc d: 0 } }
|
2009-07-02 03:30:46 -04:00
|
|
|
} test-dce ] unit-test
|
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ V{
|
2009-08-08 05:02:18 -04:00
|
|
|
T{ ##allot { dst 1 } { temp 2 } }
|
2017-08-26 14:30:18 -04:00
|
|
|
T{ ##replace { src 1 } { loc d: 0 } }
|
2015-07-03 12:39:59 -04:00
|
|
|
} } [ V{
|
2009-08-08 05:02:18 -04:00
|
|
|
T{ ##allot { dst 1 } { temp 2 } }
|
2017-08-26 14:30:18 -04:00
|
|
|
T{ ##replace { src 1 } { loc d: 0 } }
|
2009-07-02 03:30:46 -04:00
|
|
|
} test-dce ] unit-test
|
2009-07-02 04:17:19 -04:00
|
|
|
|
2015-07-03 12:39:59 -04:00
|
|
|
{ V{
|
2009-08-08 05:02:18 -04:00
|
|
|
T{ ##allot { dst 1 } { temp 2 } }
|
2017-08-26 14:30:18 -04:00
|
|
|
T{ ##replace { src 1 } { loc d: 0 } }
|
2010-04-21 03:08:52 -04:00
|
|
|
T{ ##load-integer { dst 3 } { val 8 } }
|
2009-08-08 05:02:18 -04:00
|
|
|
T{ ##set-slot-imm { obj 1 } { src 3 } }
|
2015-07-03 12:39:59 -04:00
|
|
|
} } [ V{
|
2009-08-08 05:02:18 -04:00
|
|
|
T{ ##allot { dst 1 } { temp 2 } }
|
2017-08-26 14:30:18 -04:00
|
|
|
T{ ##replace { src 1 } { loc d: 0 } }
|
2010-04-21 03:08:52 -04:00
|
|
|
T{ ##load-integer { dst 3 } { val 8 } }
|
2009-08-08 05:02:18 -04:00
|
|
|
T{ ##set-slot-imm { obj 1 } { src 3 } }
|
2009-07-02 04:17:19 -04:00
|
|
|
} test-dce ] unit-test
|