From bb0579ecf9da70c4c2eefdb3e3975c35e161c7ca Mon Sep 17 00:00:00 2001 From: Slava Pestov Date: Sun, 2 May 2010 16:21:56 -0400 Subject: [PATCH] Updating tests for recent compiler changes --- .../cfg/linear-scan/linear-scan-tests.factor | 883 ------------------ .../value-numbering-tests.factor | 84 +- basis/compiler/tests/low-level-ir.factor | 8 +- .../specialized-arrays-tests.factor | 1 + core/alien/alien-tests.factor | 6 +- 5 files changed, 43 insertions(+), 939 deletions(-) diff --git a/basis/compiler/cfg/linear-scan/linear-scan-tests.factor b/basis/compiler/cfg/linear-scan/linear-scan-tests.factor index 6d479c9daa..eb2dc2d64d 100644 --- a/basis/compiler/cfg/linear-scan/linear-scan-tests.factor +++ b/basis/compiler/cfg/linear-scan/linear-scan-tests.factor @@ -600,886 +600,3 @@ H{ } register-status ] unit-test - -:: test-linear-scan-on-cfg ( regs -- ) - [ - cfg new 0 get >>entry - dup cfg set - dup fake-representations - dup { { int-regs regs } } (linear-scan) - flatten-cfg 1array mr. - ] with-scope ; - -! Bug in live spill slots calculation - -V{ T{ ##prologue } T{ ##branch } } 0 test-bb - -V{ - T{ ##peek - { dst 703128 } - { loc D 1 } - } - T{ ##peek - { dst 703129 } - { loc D 0 } - } - T{ ##copy - { dst 703134 } - { src 703128 } - } - T{ ##copy - { dst 703135 } - { src 703129 } - } - T{ ##compare-imm-branch - { src1 703128 } - { src2 5 } - { cc cc/= } - } -} 1 test-bb - -V{ - T{ ##copy - { dst 703134 } - { src 703129 } - } - T{ ##copy - { dst 703135 } - { src 703128 } - } - T{ ##branch } -} 2 test-bb - -V{ - T{ ##replace - { src 703134 } - { loc D 0 } - } - T{ ##replace - { src 703135 } - { loc D 1 } - } - T{ ##epilogue } - T{ ##return } -} 3 test-bb - -0 1 edge -1 { 2 3 } edges -2 3 edge - -! Bug in inactive interval handling -! [ rot dup [ -rot ] when ] -V{ T{ ##prologue } T{ ##branch } } 0 test-bb - -V{ - T{ ##peek - { dst 689473 } - { loc D 2 } - } - T{ ##peek - { dst 689474 } - { loc D 1 } - } - T{ ##peek - { dst 689475 } - { loc D 0 } - } - T{ ##compare-imm-branch - { src1 689473 } - { src2 5 } - { cc cc/= } - } -} 1 test-bb - -V{ - T{ ##copy - { dst 689481 } - { src 689475 } - { rep int-rep } - } - T{ ##copy - { dst 689482 } - { src 689474 } - { rep int-rep } - } - T{ ##copy - { dst 689483 } - { src 689473 } - { rep int-rep } - } - T{ ##branch } -} 2 test-bb - -V{ - T{ ##copy - { dst 689481 } - { src 689473 } - { rep int-rep } - } - T{ ##copy - { dst 689482 } - { src 689475 } - { rep int-rep } - } - T{ ##copy - { dst 689483 } - { src 689474 } - { rep int-rep } - } - T{ ##branch } -} 3 test-bb - -V{ - T{ ##replace - { src 689481 } - { loc D 0 } - } - T{ ##replace - { src 689482 } - { loc D 1 } - } - T{ ##replace - { src 689483 } - { loc D 2 } - } - T{ ##epilogue } - T{ ##return } -} 4 test-bb - -test-diamond - -[ ] [ { 1 2 3 4 } test-linear-scan-on-cfg ] unit-test - -! Similar to the above -! [ swap dup [ rot ] when ] - -T{ basic-block - { id 201537 } - { number 0 } - { instructions V{ T{ ##prologue } T{ ##branch } } } -} 0 set - -V{ - T{ ##peek - { dst 689600 } - { loc D 1 } - } - T{ ##peek - { dst 689601 } - { loc D 0 } - } - T{ ##compare-imm-branch - { src1 689600 } - { src2 5 } - { cc cc/= } - } -} 1 test-bb - -V{ - T{ ##peek - { dst 689604 } - { loc D 2 } - } - T{ ##copy - { dst 689607 } - { src 689604 } - { rep int-rep } - } - T{ ##copy - { dst 689608 } - { src 689600 } - { rep int-rep } - } - T{ ##copy - { dst 689610 } - { src 689601 } - { rep int-rep } - } - T{ ##branch } -} 2 test-bb - -V{ - T{ ##peek - { dst 689609 } - { loc D 2 } - } - T{ ##copy - { dst 689607 } - { src 689600 } - { rep int-rep } - } - T{ ##copy - { dst 689608 } - { src 689601 } - { rep int-rep } - } - T{ ##copy - { dst 689610 } - { src 689609 } - { rep int-rep } - } - T{ ##branch } -} 3 test-bb - -V{ - T{ ##replace - { src 689607 } - { loc D 0 } - } - T{ ##replace - { src 689608 } - { loc D 1 } - } - T{ ##replace - { src 689610 } - { loc D 2 } - } - T{ ##epilogue } - T{ ##return } -} 4 test-bb - -test-diamond - -[ ] [ { 1 2 3 4 } test-linear-scan-on-cfg ] unit-test - -! compute-live-registers was inaccurate since it didn't take -! lifetime holes into account - -V{ T{ ##prologue } T{ ##branch } } 0 test-bb - -V{ - T{ ##peek - { dst 0 } - { loc D 0 } - } - T{ ##compare-imm-branch - { src1 0 } - { src2 5 } - { cc cc/= } - } -} 1 test-bb - -V{ - T{ ##peek - { dst 1 } - { loc D 1 } - } - T{ ##copy - { dst 2 } - { src 1 } - { rep int-rep } - } - T{ ##branch } -} 2 test-bb - -V{ - T{ ##peek - { dst 3 } - { loc D 2 } - } - T{ ##copy - { dst 2 } - { src 3 } - { rep int-rep } - } - T{ ##branch } -} 3 test-bb - -V{ - T{ ##replace - { src 2 } - { loc D 0 } - } - T{ ##return } -} 4 test-bb - -test-diamond - -[ ] [ { 1 2 3 4 } test-linear-scan-on-cfg ] unit-test - -! Inactive interval handling: splitting active interval -! if it fits in lifetime hole only partially - -V{ T{ ##peek f 3 R 1 } T{ ##branch } } 0 test-bb - -V{ - T{ ##peek f 2 R 0 } - T{ ##compare-imm-branch f 2 5 cc= } -} 1 test-bb - -V{ - T{ ##peek f 0 D 0 } - T{ ##branch } -} 2 test-bb - - -V{ - T{ ##peek f 1 D 1 } - T{ ##peek f 0 D 0 } - T{ ##replace f 1 D 2 } - T{ ##branch } -} 3 test-bb - -V{ - T{ ##replace f 3 R 2 } - T{ ##replace f 0 D 0 } - T{ ##return } -} 4 test-bb - -test-diamond - -[ ] [ { 1 2 } test-linear-scan-on-cfg ] unit-test - -! Not until splitting is finished -! [ _copy ] [ 3 get instructions>> second class ] unit-test - -! Resolve pass; make sure the spilling is done correctly -V{ T{ ##peek f 3 R 1 } T{ ##branch } } 0 test-bb - -V{ - T{ ##peek f 2 R 0 } - T{ ##compare-imm-branch f 2 5 cc= } -} 1 test-bb - -V{ - T{ ##branch } -} 2 test-bb - -V{ - T{ ##replace f 3 R 1 } - T{ ##peek f 1 D 1 } - T{ ##peek f 0 D 0 } - T{ ##replace f 1 D 2 } - T{ ##replace f 0 D 2 } - T{ ##branch } -} 3 test-bb - -V{ - T{ ##replace f 3 R 2 } - T{ ##return } -} 4 test-bb - -test-diamond - -[ ] [ { 1 2 } test-linear-scan-on-cfg ] unit-test - -[ ##spill ] [ 2 get successors>> first instructions>> first class ] unit-test - -[ ##spill ] [ 3 get instructions>> second class ] unit-test - -[ f ] [ 3 get instructions>> [ ##reload? ] any? ] unit-test - -[ ##reload ] [ 4 get instructions>> first class ] unit-test - -! Resolve pass -V{ - T{ ##branch } -} 0 test-bb - -V{ - T{ ##peek f 0 D 0 } - T{ ##compare-imm-branch f 0 5 cc= } -} 1 test-bb - -V{ - T{ ##replace f 0 D 0 } - T{ ##peek f 1 D 0 } - T{ ##peek f 2 D 0 } - T{ ##replace f 1 D 0 } - T{ ##replace f 2 D 0 } - T{ ##branch } -} 2 test-bb - -V{ - T{ ##branch } -} 3 test-bb - -V{ - T{ ##peek f 1 D 0 } - T{ ##compare-imm-branch f 1 5 cc= } -} 4 test-bb - -V{ - T{ ##replace f 0 D 0 } - T{ ##return } -} 5 test-bb - -V{ - T{ ##replace f 0 D 0 } - T{ ##return } -} 6 test-bb - -0 1 edge -1 { 2 3 } edges -2 4 edge -3 4 edge -4 { 5 6 } edges - -[ ] [ { 1 2 } test-linear-scan-on-cfg ] unit-test - -[ t ] [ 2 get instructions>> [ ##spill? ] any? ] unit-test - -[ t ] [ 3 get predecessors>> first instructions>> [ ##spill? ] any? ] unit-test - -[ t ] [ 5 get instructions>> [ ##reload? ] any? ] unit-test - -! A more complicated failure case with resolve that came up after the above -! got fixed -V{ T{ ##branch } } 0 test-bb -V{ - T{ ##peek f 0 D 0 } - T{ ##peek f 1 D 1 } - T{ ##peek f 2 D 2 } - T{ ##peek f 3 D 3 } - T{ ##peek f 4 D 0 } - T{ ##branch } -} 1 test-bb -V{ T{ ##branch } } 2 test-bb -V{ T{ ##branch } } 3 test-bb -V{ - - T{ ##replace f 1 D 1 } - T{ ##replace f 2 D 2 } - T{ ##replace f 3 D 3 } - T{ ##replace f 4 D 4 } - T{ ##replace f 0 D 0 } - T{ ##branch } -} 4 test-bb -V{ T{ ##replace f 0 D 0 } T{ ##branch } } 5 test-bb -V{ T{ ##return } } 6 test-bb -V{ T{ ##branch } } 7 test-bb -V{ - T{ ##replace f 1 D 1 } - T{ ##replace f 2 D 2 } - T{ ##replace f 3 D 3 } - T{ ##peek f 5 D 1 } - T{ ##peek f 6 D 2 } - T{ ##peek f 7 D 3 } - T{ ##peek f 8 D 4 } - T{ ##replace f 5 D 1 } - T{ ##replace f 6 D 2 } - T{ ##replace f 7 D 3 } - T{ ##replace f 8 D 4 } - T{ ##branch } -} 8 test-bb -V{ - T{ ##replace f 1 D 1 } - T{ ##replace f 2 D 2 } - T{ ##replace f 3 D 3 } - T{ ##return } -} 9 test-bb - -0 1 edge -1 { 2 7 } edges -7 8 edge -8 9 edge -2 { 3 5 } edges -3 4 edge -4 9 edge -5 6 edge - -[ ] [ { 1 2 3 4 } test-linear-scan-on-cfg ] unit-test - -[ ##spill ] [ 1 get instructions>> second class ] unit-test -[ ##reload ] [ 4 get instructions>> 4 swap nth class ] unit-test -[ V{ 3 2 1 } ] [ 8 get instructions>> [ ##spill? ] filter [ dst>> n>> cell / ] map ] unit-test -[ V{ 3 2 1 } ] [ 9 get instructions>> [ ##reload? ] filter [ src>> n>> cell / ] map ] unit-test - -! Resolve pass should insert this -[ ##reload ] [ 5 get predecessors>> first instructions>> first class ] unit-test - -! Some random bug -V{ - T{ ##peek f 1 D 1 } - T{ ##peek f 2 D 2 } - T{ ##replace f 1 D 1 } - T{ ##replace f 2 D 2 } - T{ ##peek f 3 D 0 } - T{ ##peek f 0 D 0 } - T{ ##branch } -} 0 test-bb - -V{ T{ ##branch } } 1 test-bb - -V{ - T{ ##peek f 1 D 1 } - T{ ##peek f 2 D 2 } - T{ ##replace f 3 D 3 } - T{ ##replace f 1 D 1 } - T{ ##replace f 2 D 2 } - T{ ##replace f 0 D 3 } - T{ ##branch } -} 2 test-bb - -V{ T{ ##branch } } 3 test-bb - -V{ - T{ ##return } -} 4 test-bb - -test-diamond - -[ ] [ { 1 2 } test-linear-scan-on-cfg ] unit-test - -! Spilling an interval immediately after its activated; -! and the interval does not have a use at the activation point -V{ - T{ ##peek f 1 D 1 } - T{ ##peek f 2 D 2 } - T{ ##replace f 1 D 1 } - T{ ##replace f 2 D 2 } - T{ ##peek f 0 D 0 } - T{ ##branch } -} 0 test-bb - -V{ T{ ##branch } } 1 test-bb - -V{ - T{ ##peek f 1 D 1 } - T{ ##branch } -} 2 test-bb - -V{ - T{ ##replace f 1 D 1 } - T{ ##peek f 2 D 2 } - T{ ##replace f 2 D 2 } - T{ ##branch } -} 3 test-bb - -V{ T{ ##branch } } 4 test-bb - -V{ - T{ ##replace f 0 D 0 } - T{ ##return } -} 5 test-bb - -0 1 edge -1 { 2 4 } edges -4 5 edge -2 3 edge -3 5 edge - -[ ] [ { 1 2 } test-linear-scan-on-cfg ] unit-test - -! Reduction of push-all regression, x86-32 -V{ T{ ##prologue } T{ ##branch } } 0 test-bb - -V{ - T{ ##load-integer { dst 61 } } - T{ ##peek { dst 62 } { loc D 0 } } - T{ ##peek { dst 64 } { loc D 1 } } - T{ ##slot-imm - { dst 69 } - { obj 64 } - { slot 1 } - { tag 2 } - } - T{ ##copy { dst 79 } { src 69 } { rep int-rep } } - T{ ##slot-imm - { dst 85 } - { obj 62 } - { slot 2 } - { tag 7 } - } - T{ ##compare-branch - { src1 69 } - { src2 85 } - { cc cc> } - } -} 1 test-bb - -V{ - T{ ##slot-imm - { dst 97 } - { obj 62 } - { slot 2 } - { tag 7 } - } - T{ ##replace { src 79 } { loc D 3 } } - T{ ##replace { src 62 } { loc D 4 } } - T{ ##replace { src 79 } { loc D 1 } } - T{ ##replace { src 62 } { loc D 2 } } - T{ ##replace { src 61 } { loc D 5 } } - T{ ##replace { src 62 } { loc R 0 } } - T{ ##replace { src 69 } { loc R 1 } } - T{ ##replace { src 97 } { loc D 0 } } - T{ ##call { word resize-array } } - T{ ##branch } -} 2 test-bb - -V{ - T{ ##peek { dst 98 } { loc R 0 } } - T{ ##peek { dst 100 } { loc D 0 } } - T{ ##set-slot-imm - { src 100 } - { obj 98 } - { slot 2 } - { tag 7 } - } - T{ ##peek { dst 108 } { loc D 2 } } - T{ ##peek { dst 110 } { loc D 3 } } - T{ ##peek { dst 112 } { loc D 0 } } - T{ ##peek { dst 114 } { loc D 1 } } - T{ ##peek { dst 116 } { loc D 4 } } - T{ ##peek { dst 119 } { loc R 0 } } - T{ ##copy { dst 109 } { src 108 } { rep int-rep } } - T{ ##copy { dst 111 } { src 110 } { rep int-rep } } - T{ ##copy { dst 113 } { src 112 } { rep int-rep } } - T{ ##copy { dst 115 } { src 114 } { rep int-rep } } - T{ ##copy { dst 117 } { src 116 } { rep int-rep } } - T{ ##copy { dst 120 } { src 119 } { rep int-rep } } - T{ ##branch } -} 3 test-bb - -V{ - T{ ##copy { dst 109 } { src 62 } { rep int-rep } } - T{ ##copy { dst 111 } { src 61 } { rep int-rep } } - T{ ##copy { dst 113 } { src 62 } { rep int-rep } } - T{ ##copy { dst 115 } { src 79 } { rep int-rep } } - T{ ##copy { dst 117 } { src 64 } { rep int-rep } } - T{ ##copy { dst 120 } { src 69 } { rep int-rep } } - T{ ##branch } -} 4 test-bb - -V{ - T{ ##replace { src 120 } { loc D 0 } } - T{ ##replace { src 109 } { loc D 3 } } - T{ ##replace { src 111 } { loc D 4 } } - T{ ##replace { src 113 } { loc D 1 } } - T{ ##replace { src 115 } { loc D 2 } } - T{ ##replace { src 117 } { loc D 5 } } - T{ ##epilogue } - T{ ##return } -} 5 test-bb - -0 1 edge -1 { 2 4 } edges -2 3 edge -3 5 edge -4 5 edge - -[ ] [ { 1 2 3 4 5 } test-linear-scan-on-cfg ] unit-test - -! Another reduction of push-all -V{ T{ ##prologue } T{ ##branch } } 0 test-bb - -V{ - T{ ##peek { dst 85 } { loc D 0 } } - T{ ##slot-imm - { dst 89 } - { obj 85 } - { slot 3 } - { tag 7 } - } - T{ ##peek { dst 91 } { loc D 1 } } - T{ ##slot-imm - { dst 96 } - { obj 91 } - { slot 1 } - { tag 2 } - } - T{ ##add - { dst 109 } - { src1 89 } - { src2 96 } - } - T{ ##slot-imm - { dst 115 } - { obj 85 } - { slot 2 } - { tag 7 } - } - T{ ##slot-imm - { dst 118 } - { obj 115 } - { slot 1 } - { tag 2 } - } - T{ ##compare-branch - { src1 109 } - { src2 118 } - { cc cc> } - } -} 1 test-bb - -V{ - T{ ##add-imm - { dst 128 } - { src1 109 } - { src2 8 } - } - T{ ##load-integer { dst 129 } { val 24 } } - T{ ##inc-d { n 4 } } - T{ ##inc-r { n 1 } } - T{ ##replace { src 109 } { loc D 2 } } - T{ ##replace { src 85 } { loc D 3 } } - T{ ##replace { src 128 } { loc D 0 } } - T{ ##replace { src 85 } { loc D 1 } } - T{ ##replace { src 89 } { loc D 4 } } - T{ ##replace { src 96 } { loc R 0 } } - T{ ##replace { src 129 } { loc R 0 } } - T{ ##branch } -} 2 test-bb - -V{ - T{ ##peek { dst 134 } { loc D 1 } } - T{ ##slot-imm - { dst 140 } - { obj 134 } - { slot 2 } - { tag 7 } - } - T{ ##inc-d { n 1 } } - T{ ##inc-r { n 1 } } - T{ ##replace { src 140 } { loc D 0 } } - T{ ##replace { src 134 } { loc R 0 } } - T{ ##call { word resize-array } } - T{ ##branch } -} 3 test-bb - -V{ - T{ ##peek { dst 141 } { loc R 0 } } - T{ ##peek { dst 143 } { loc D 0 } } - T{ ##set-slot-imm - { src 143 } - { obj 141 } - { slot 2 } - { tag 7 } - } - T{ ##write-barrier-imm - { src 141 } - { slot 2 } - { temp1 145 } - { temp2 146 } - } - T{ ##inc-d { n -1 } } - T{ ##inc-r { n -1 } } - T{ ##peek { dst 156 } { loc D 2 } } - T{ ##peek { dst 158 } { loc D 3 } } - T{ ##peek { dst 160 } { loc D 0 } } - T{ ##peek { dst 162 } { loc D 1 } } - T{ ##peek { dst 164 } { loc D 4 } } - T{ ##peek { dst 167 } { loc R 0 } } - T{ ##copy { dst 157 } { src 156 } { rep int-rep } } - T{ ##copy { dst 159 } { src 158 } { rep int-rep } } - T{ ##copy { dst 161 } { src 160 } { rep int-rep } } - T{ ##copy { dst 163 } { src 162 } { rep int-rep } } - T{ ##copy { dst 165 } { src 164 } { rep int-rep } } - T{ ##copy { dst 168 } { src 167 } { rep int-rep } } - T{ ##branch } -} 4 test-bb - -V{ - T{ ##inc-d { n 3 } } - T{ ##inc-r { n 1 } } - T{ ##copy { dst 157 } { src 85 } } - T{ ##copy { dst 159 } { src 89 } } - T{ ##copy { dst 161 } { src 85 } } - T{ ##copy { dst 163 } { src 109 } } - T{ ##copy { dst 165 } { src 91 } } - T{ ##copy { dst 168 } { src 96 } } - T{ ##branch } -} 5 test-bb - -V{ - T{ ##set-slot-imm - { src 163 } - { obj 161 } - { slot 3 } - { tag 7 } - } - T{ ##inc-d { n 1 } } - T{ ##inc-r { n -1 } } - T{ ##replace { src 168 } { loc D 0 } } - T{ ##replace { src 157 } { loc D 3 } } - T{ ##replace { src 159 } { loc D 4 } } - T{ ##replace { src 161 } { loc D 1 } } - T{ ##replace { src 163 } { loc D 2 } } - T{ ##replace { src 165 } { loc D 5 } } - T{ ##epilogue } - T{ ##return } -} 6 test-bb - -0 1 edge -1 { 2 5 } edges -2 3 edge -3 4 edge -4 6 edge -5 6 edge - -[ ] [ { 1 2 3 4 5 } test-linear-scan-on-cfg ] unit-test - -! Fencepost error in assignment pass -V{ T{ ##branch } } 0 test-bb - -V{ - T{ ##peek f 0 D 0 } - T{ ##compare-imm-branch f 0 5 cc= } -} 1 test-bb - -V{ T{ ##branch } } 2 test-bb - -V{ - T{ ##peek f 1 D 0 } - T{ ##peek f 2 D 0 } - T{ ##replace f 1 D 0 } - T{ ##replace f 2 D 0 } - T{ ##branch } -} 3 test-bb - -V{ - T{ ##replace f 0 D 0 } - T{ ##return } -} 4 test-bb - -test-diamond - -[ ] [ { 1 2 } test-linear-scan-on-cfg ] unit-test - -[ 0 ] [ 1 get instructions>> [ ##spill? ] count ] unit-test - -[ 1 ] [ 2 get instructions>> [ ##spill? ] count ] unit-test - -[ 1 ] [ 3 get predecessors>> first instructions>> [ ##spill? ] count ] unit-test - -[ 1 ] [ 4 get instructions>> [ ##reload? ] count ] unit-test - -! Another test case for fencepost error in assignment pass -V{ T{ ##branch } } 0 test-bb - -V{ - T{ ##peek f 0 D 0 } - T{ ##compare-imm-branch f 0 5 cc= } -} 1 test-bb - -V{ - T{ ##peek f 1 D 0 } - T{ ##peek f 2 D 0 } - T{ ##replace f 1 D 0 } - T{ ##replace f 2 D 0 } - T{ ##replace f 0 D 0 } - T{ ##branch } -} 2 test-bb - -V{ - T{ ##branch } -} 3 test-bb - -V{ - T{ ##replace f 0 D 0 } - T{ ##return } -} 4 test-bb - -test-diamond - -[ ] [ { 1 2 } test-linear-scan-on-cfg ] unit-test - -[ 0 ] [ 1 get instructions>> [ ##spill? ] count ] unit-test - -[ 1 ] [ 2 get instructions>> [ ##spill? ] count ] unit-test - -[ 1 ] [ 2 get instructions>> [ ##reload? ] count ] unit-test - -[ 0 ] [ 3 get instructions>> [ ##spill? ] count ] unit-test - -[ 0 ] [ 4 get instructions>> [ ##reload? ] count ] unit-test diff --git a/basis/compiler/cfg/value-numbering/value-numbering-tests.factor b/basis/compiler/cfg/value-numbering/value-numbering-tests.factor index b7084fb2d8..c9c4327be6 100644 --- a/basis/compiler/cfg/value-numbering/value-numbering-tests.factor +++ b/basis/compiler/cfg/value-numbering/value-numbering-tests.factor @@ -28,15 +28,11 @@ IN: compiler.cfg.value-numbering.tests { T{ ##load-reference f 0 0.0 } T{ ##load-reference f 1 -0.0 } - T{ ##replace f 0 D 0 } - T{ ##replace f 1 D 1 } } ] [ { T{ ##load-reference f 0 0.0 } T{ ##load-reference f 1 -0.0 } - T{ ##replace f 0 D 0 } - T{ ##replace f 1 D 1 } } value-numbering-step ] unit-test @@ -44,15 +40,11 @@ IN: compiler.cfg.value-numbering.tests { T{ ##load-reference f 0 0.0 } T{ ##copy f 1 0 any-rep } - T{ ##replace f 0 D 0 } - T{ ##replace f 1 D 1 } } ] [ { T{ ##load-reference f 0 0.0 } T{ ##load-reference f 1 0.0 } - T{ ##replace f 0 D 0 } - T{ ##replace f 1 D 1 } } value-numbering-step ] unit-test @@ -60,15 +52,11 @@ IN: compiler.cfg.value-numbering.tests { T{ ##load-reference f 0 t } T{ ##copy f 1 0 any-rep } - T{ ##replace f 0 D 0 } - T{ ##replace f 1 D 1 } } ] [ { T{ ##load-reference f 0 t } T{ ##load-reference f 1 t } - T{ ##replace f 0 D 0 } - T{ ##replace f 1 D 1 } } value-numbering-step ] unit-test @@ -508,7 +496,7 @@ cpu x86.32? [ { T{ ##peek f 0 D 0 } T{ ##load-integer f 1 100 } - T{ ##compare-imm f 2 0 $[ 100 tag-fixnum ] cc= } + T{ ##compare-imm f 2 0 100 cc= } } ] [ { @@ -562,33 +550,35 @@ cpu x86.32? [ ] unit-test ] when -[ - { - T{ ##peek f 0 D 0 } - T{ ##load-reference f 1 3.5 } - T{ ##compare f 2 0 1 cc= } - } -] [ - { - T{ ##peek f 0 D 0 } - T{ ##load-reference f 1 3.5 } - T{ ##compare f 2 0 1 cc= } - } value-numbering-step trim-temps -] unit-test +cpu x86.32? [ + [ + { + T{ ##peek f 0 D 0 } + T{ ##load-reference f 1 3.5 } + T{ ##compare f 2 0 1 cc= } + } + ] [ + { + T{ ##peek f 0 D 0 } + T{ ##load-reference f 1 3.5 } + T{ ##compare f 2 0 1 cc= } + } value-numbering-step trim-temps + ] unit-test -[ - { - T{ ##peek f 0 D 0 } - T{ ##load-reference f 1 3.5 } - T{ ##compare-branch f 0 1 cc= } - } -] [ - { - T{ ##peek f 0 D 0 } - T{ ##load-reference f 1 3.5 } - T{ ##compare-branch f 0 1 cc= } - } value-numbering-step trim-temps -] unit-test + [ + { + T{ ##peek f 0 D 0 } + T{ ##load-reference f 1 3.5 } + T{ ##compare-branch f 0 1 cc= } + } + ] [ + { + T{ ##peek f 0 D 0 } + T{ ##load-reference f 1 3.5 } + T{ ##compare-branch f 0 1 cc= } + } value-numbering-step trim-temps + ] unit-test +] unless [ { @@ -818,7 +808,7 @@ cpu x86.32? [ [ { T{ ##load-integer f 1 10 } - T{ ##load-reference f 2 f } + T{ ##load-reference f 2 t } } ] [ { @@ -830,12 +820,12 @@ cpu x86.32? [ [ { T{ ##load-integer f 1 10 } - T{ ##load-reference f 2 t } + T{ ##load-reference f 2 f } } ] [ { T{ ##load-integer f 1 10 } - T{ ##compare-imm f 2 1 $[ 10 tag-fixnum ] cc= } + T{ ##compare-imm f 2 1 20 cc= } } value-numbering-step ] unit-test @@ -847,7 +837,7 @@ cpu x86.32? [ ] [ { T{ ##load-integer f 1 10 } - T{ ##compare-imm f 2 1 10 cc/= } + T{ ##compare-imm f 2 1 100 cc/= } } value-numbering-step ] unit-test @@ -859,7 +849,7 @@ cpu x86.32? [ ] [ { T{ ##load-integer f 1 10 } - T{ ##compare-imm f 2 1 $[ 10 tag-fixnum ] cc/= } + T{ ##compare-imm f 2 1 10 cc/= } } value-numbering-step ] unit-test @@ -1390,13 +1380,11 @@ cpu x86.32? [ { T{ ##peek f 0 D 0 } T{ ##load-integer f 1 0 } - T{ ##replace f 1 D 0 } } ] [ { T{ ##peek f 0 D 0 } T{ ##and-imm f 1 0 0 } - T{ ##replace f 1 D 0 } } value-numbering-step ] unit-test @@ -1446,13 +1434,11 @@ cpu x86.32? [ { T{ ##peek f 0 D 0 } T{ ##load-integer f 1 -1 } - T{ ##replace f 1 D 0 } } ] [ { T{ ##peek f 0 D 0 } T{ ##or-imm f 1 0 -1 } - T{ ##replace f 1 D 0 } } value-numbering-step ] unit-test @@ -1502,13 +1488,11 @@ cpu x86.32? [ { T{ ##peek f 0 D 0 } T{ ##load-integer f 1 0 } - T{ ##replace f 1 D 0 } } ] [ { T{ ##peek f 0 D 0 } T{ ##xor f 1 0 0 } - T{ ##replace f 1 D 0 } } value-numbering-step ] unit-test diff --git a/basis/compiler/tests/low-level-ir.factor b/basis/compiler/tests/low-level-ir.factor index 5cba592163..60c68072ec 100644 --- a/basis/compiler/tests/low-level-ir.factor +++ b/basis/compiler/tests/low-level-ir.factor @@ -1,8 +1,9 @@ USING: accessors assocs compiler compiler.cfg compiler.cfg.debugger compiler.cfg.instructions compiler.cfg.mr -compiler.cfg.registers compiler.cfg.linear-scan compiler.codegen -compiler.units cpu.architecture hashtables kernel namespaces -sequences tools.test vectors words layouts literals math arrays +compiler.cfg.registers compiler.cfg.linear-scan +compiler.cfg.ssa.destruction compiler.codegen compiler.units +cpu.architecture hashtables kernel namespaces sequences +tools.test vectors words layouts literals math arrays alien.c-types alien.syntax math.private ; IN: compiler.tests.low-level-ir @@ -15,6 +16,7 @@ IN: compiler.tests.low-level-ir cfg new 0 get >>entry dup cfg set dup fake-representations + destruct-ssa compile-cfg ; : compile-test-bb ( insns -- result ) diff --git a/basis/specialized-arrays/specialized-arrays-tests.factor b/basis/specialized-arrays/specialized-arrays-tests.factor index 2dee88df88..ad1b4ad2b7 100644 --- a/basis/specialized-arrays/specialized-arrays-tests.factor +++ b/basis/specialized-arrays/specialized-arrays-tests.factor @@ -188,5 +188,6 @@ SPECIALIZED-ARRAY: struct-resize-test [ ] [ [ struct-resize-test specialized-array-vocab forget-vocab + \ struct-resize-test-usage forget ] with-compilation-unit ] unit-test diff --git a/core/alien/alien-tests.factor b/core/alien/alien-tests.factor index 3321dbe2ed..1009081236 100644 --- a/core/alien/alien-tests.factor +++ b/core/alien/alien-tests.factor @@ -64,13 +64,13 @@ cell 8 = [ [ 1 1 ] must-fail -[ f ] [ 0 B{ 1 2 3 } pinned-c-ptr? ] unit-test +[ f ] [ 1 B{ 1 2 3 } pinned-c-ptr? ] unit-test -[ f ] [ 0 B{ 1 2 3 } 1 swap pinned-c-ptr? ] unit-test +[ f ] [ 2 B{ 1 2 3 } 1 swap pinned-c-ptr? ] unit-test [ t ] [ 0 B{ 1 2 3 } 1 swap underlying>> byte-array? ] unit-test -[ "( displaced alien )" ] [ 0 B{ 1 2 3 } unparse ] unit-test +[ "( displaced alien )" ] [ 1 B{ 1 2 3 } unparse ] unit-test SYMBOL: initialize-test