]> gitweb.factorcode.org Git - factor.git/commitdiff
compiler.cfg.*: new test-case and setting leader-map to f is better
authorBjörn Lindqvist <bjourne@gmail.com>
Sun, 10 May 2015 02:53:41 +0000 (04:53 +0200)
committerJohn Benediktsson <mrjbq7@gmail.com>
Sun, 10 May 2015 03:10:27 +0000 (20:10 -0700)
basis/compiler/cfg/ssa/destruction/destruction.factor
basis/compiler/cfg/stacks/clearing/clearing-tests.factor

index 5d421a133d3d5e534bf20a91e2e94c552bd8d1db..b72a273d89353b4de22952f88ec47ab09a7bf6ab 100644 (file)
@@ -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
index 1d84dfe243e8e10b31933fccd811287dda17a215..14fe4f0fc9b3fbd6abfa84fb71398aad21a76606 100644 (file)
@@ -3,16 +3,27 @@ compiler.cfg.registers compiler.cfg.stacks.clearing compiler.cfg.utilities
 kernel tools.test ;
 IN: compiler.cfg.stacks.clearing.tests
 
-{ { } } [
-    { { 0 { } } { 0 { } } } state>replaces
+! clear-uninitialized
+{
+    V{
+        T{ ##inc { loc D 2 } { insn# 0 } }
+        T{ ##replace-imm { src 17 } { loc T{ ds-loc { n 1 } } } }
+        T{ ##replace-imm { src 17 } { loc T{ ds-loc } } }
+        T{ ##peek { loc D 2 } { insn# 1 } }
+    }
+} [
+    { 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 } }
@@ -22,14 +33,15 @@ IN: compiler.cfg.stacks.clearing.tests
     { { 2 { } } { 0 { } } } state>replaces
 ] unit-test
 
+{ { } } [
+    { { 0 { } } { 0 { } } } state>replaces
+] unit-test
+
 {
-    V{
-        T{ ##inc { loc D 2 } { insn# 0 } }
-        T{ ##replace-imm { src 17 } { loc T{ ds-loc { n 1 } } } }
+    {
         T{ ##replace-imm { src 17 } { loc T{ ds-loc } } }
-        T{ ##peek { loc D 2 } { insn# 1 } }
+        T{ ##replace-imm { src 17 } { loc T{ rs-loc } } }
     }
 } [
-    { T{ ##inc f D 2 } T{ ##peek f f D 2 } } insns>cfg
-    dup clear-uninitialized cfg>insns
+    { { 1 { } } { 1 { } } } state>replaces
 ] unit-test