diff --git a/basis/compiler/cfg/ssa/destruction/destruction.factor b/basis/compiler/cfg/ssa/destruction/destruction.factor index 5d421a133d..b72a273d89 100644 --- a/basis/compiler/cfg/ssa/destruction/destruction.factor +++ b/basis/compiler/cfg/ssa/destruction/destruction.factor @@ -131,7 +131,7 @@ M: insn cleanup-insn , ; PRIVATE> : destruct-ssa ( cfg -- ) - H{ } clone leader-map set + f leader-map set { needs-dominance construct-cssa diff --git a/basis/compiler/cfg/stacks/clearing/clearing-tests.factor b/basis/compiler/cfg/stacks/clearing/clearing-tests.factor index 1d84dfe243..14fe4f0fc9 100644 --- a/basis/compiler/cfg/stacks/clearing/clearing-tests.factor +++ b/basis/compiler/cfg/stacks/clearing/clearing-tests.factor @@ -3,25 +3,7 @@ compiler.cfg.registers compiler.cfg.stacks.clearing compiler.cfg.utilities kernel tools.test ; IN: compiler.cfg.stacks.clearing.tests -{ { } } [ - { { 0 { } } { 0 { } } } state>replaces -] unit-test - -{ t f f } [ - { { 0 { } } { 0 { } } } T{ ##peek { loc D 0 } } dangerous-insn? - { { 1 { 0 } } { 0 { } } } T{ ##peek { loc D 0 } } dangerous-insn? - { { 0 { -1 } } { 0 { } } } T{ ##peek { loc D -1 } } dangerous-insn? -] unit-test - -{ - { - T{ ##replace-imm { src 17 } { loc D 1 } } - T{ ##replace-imm { src 17 } { loc D 0 } } - } -} [ - { { 2 { } } { 0 { } } } state>replaces -] unit-test - +! clear-uninitialized { V{ T{ ##inc { loc D 2 } { insn# 0 } } @@ -33,3 +15,33 @@ IN: compiler.cfg.stacks.clearing.tests { T{ ##inc f D 2 } T{ ##peek f f D 2 } } insns>cfg dup clear-uninitialized cfg>insns ] unit-test + +! dangerous-insn? +{ t f f } [ + { { 0 { } } { 0 { } } } T{ ##peek { loc D 0 } } dangerous-insn? + { { 1 { 0 } } { 0 { } } } T{ ##peek { loc D 0 } } dangerous-insn? + { { 0 { -1 } } { 0 { } } } T{ ##peek { loc D -1 } } dangerous-insn? +] unit-test + +! state>replaces +{ + { + T{ ##replace-imm { src 17 } { loc D 1 } } + T{ ##replace-imm { src 17 } { loc D 0 } } + } +} [ + { { 2 { } } { 0 { } } } state>replaces +] unit-test + +{ { } } [ + { { 0 { } } { 0 { } } } state>replaces +] unit-test + +{ + { + T{ ##replace-imm { src 17 } { loc T{ ds-loc } } } + T{ ##replace-imm { src 17 } { loc T{ rs-loc } } } + } +} [ + { { 1 { } } { 1 { } } } state>replaces +] unit-test