! Copyright (C) 2009 Daniel Ehrenberg. ! See http://factorcode.org/license.txt for BSD license. USING: accessors kernel compiler.cfg compiler.cfg.dce compiler.cfg.instructions compiler.cfg.registers compiler.cfg.utilities cpu.architecture tools.test ; IN: compiler.cfg.dce.tests : test-dce ( insns -- insns' ) insns>cfg dup eliminate-dead-code entry>> instructions>> ; { V{ T{ ##load-integer { dst 1 } { val 8 } } T{ ##load-integer { dst 2 } { val 16 } } T{ ##add { dst 3 } { src1 1 } { src2 2 } } T{ ##replace { src 3 } { loc d: 0 } } } } [ V{ T{ ##load-integer { dst 1 } { val 8 } } T{ ##load-integer { dst 2 } { val 16 } } T{ ##add { dst 3 } { src1 1 } { src2 2 } } T{ ##replace { src 3 } { loc d: 0 } } } test-dce ] unit-test { V{ } } [ V{ T{ ##load-integer { dst 1 } { val 8 } } T{ ##load-integer { dst 2 } { val 16 } } T{ ##add { dst 3 } { src1 1 } { src2 2 } } } test-dce ] unit-test { V{ } } [ V{ T{ ##load-integer { dst 3 } { val 8 } } T{ ##allot { dst 1 } { temp 2 } } } test-dce ] unit-test { V{ } } [ V{ T{ ##load-integer { dst 3 } { val 8 } } T{ ##allot { dst 1 } { temp 2 } } T{ ##set-slot-imm { obj 1 } { src 3 } } } test-dce ] unit-test { V{ T{ ##load-integer { dst 3 } { val 8 } } T{ ##allot { dst 1 } { temp 2 } } T{ ##set-slot-imm { obj 1 } { src 3 } } T{ ##replace { src 1 } { loc d: 0 } } } } [ V{ T{ ##load-integer { dst 3 } { val 8 } } T{ ##allot { dst 1 } { temp 2 } } T{ ##set-slot-imm { obj 1 } { src 3 } } T{ ##replace { src 1 } { loc d: 0 } } } test-dce ] unit-test { V{ T{ ##allot { dst 1 } { temp 2 } } T{ ##replace { src 1 } { loc d: 0 } } } } [ V{ T{ ##allot { dst 1 } { temp 2 } } T{ ##replace { src 1 } { loc d: 0 } } } test-dce ] unit-test { V{ T{ ##allot { dst 1 } { temp 2 } } T{ ##replace { src 1 } { loc d: 0 } } T{ ##load-integer { dst 3 } { val 8 } } T{ ##set-slot-imm { obj 1 } { src 3 } } } } [ V{ T{ ##allot { dst 1 } { temp 2 } } T{ ##replace { src 1 } { loc d: 0 } } T{ ##load-integer { dst 3 } { val 8 } } T{ ##set-slot-imm { obj 1 } { src 3 } } } test-dce ] unit-test