diff --git a/basis/compiler/cfg/dependence/dependence-tests.factor b/basis/compiler/cfg/dependence/dependence-tests.factor index aaa6820d45..c4092f359f 100644 --- a/basis/compiler/cfg/dependence/dependence-tests.factor +++ b/basis/compiler/cfg/dependence/dependence-tests.factor @@ -4,23 +4,10 @@ grouping kernel math namespaces random sequences tools.test vectors ; IN: compiler.cfg.dependence.tests FROM: sets => members set= ; -{ - V{ - T{ node - { number 1 } - { insn T{ ##inc-r } } - { precedes H{ } } - } - T{ node - { number 2 } - { insn T{ ##inc-d } } - { precedes H{ } } - } - } -} [ - 0 node-number set-global +{ t } [ V{ T{ ##inc-r } T{ ##inc-d } } [ ] map dup build-dependence-graph + first2 [ insn>> ##inc-r? ] [ insn>> ##inc-d? ] bi* and ] unit-test { 0 } [ @@ -28,11 +15,11 @@ FROM: sets => members set= ; ] unit-test : 2node-tree ( -- tree ) - 2 iota [ node new swap >>number ] map first2 over attach-parent ; + 2 [ node new ] replicate first2 over attach-parent ; ! 0 -> 1 -> 2 : 3node-tree ( -- tree ) - 3 iota [ node new swap >>number ] map first3 + 3 [ node new ] replicate first3 over attach-parent over attach-parent ; ! Verification tests @@ -73,7 +60,7 @@ ERROR: node-missing-children trees nodes ; ] unit-test : dummy-node ( number -- node ) - node new over >>number ##allot new rot >>insn# >>insn ; + ##allot new swap >>insn# node new swap >>insn ; ! No parent because it has +control+ { f } [ @@ -121,7 +108,7 @@ ERROR: node-missing-children trees nodes ; ] unit-test : test-some-kind-of-dep ( -- insns ) - 0 node-number set-global + ! 0 node-number set-global V{ T{ ##peek { dst 275 } { loc D 2 } } T{ ##load-tagged { dst 277 } { val 0 } } @@ -178,9 +165,9 @@ ERROR: node-missing-children trees nodes ; [ parent-index>> -1/0. = ] count ] unit-test -{ V{ 1 4 7 8 } } [ +{ V{ 0 6 12 14 } } [ test-some-kind-of-dep dup build-dependence-graph dup build-fan-in-trees - [ parent-index>> -1/0. = ] filter [ number>> ] map + [ parent-index>> -1/0. = ] filter [ insn>> insn#>> ] map ] unit-test diff --git a/basis/compiler/cfg/dependence/dependence.factor b/basis/compiler/cfg/dependence/dependence.factor index 4171bb2e41..c4e7ad6404 100644 --- a/basis/compiler/cfg/dependence/dependence.factor +++ b/basis/compiler/cfg/dependence/dependence.factor @@ -6,20 +6,13 @@ namespaces sequences sorting make math math.vectors sets vectors ; FROM: namespaces => set ; IN: compiler.cfg.dependence -SYMBOL: node-number - SYMBOL: +data+ SYMBOL: +control+ -TUPLE: node number insn precedes children registers parent-index ; - -M: node equal? over node? [ [ number>> ] same? ] [ 2drop f ] if ; - -M: node hashcode* nip number>> ; +TUPLE: node < identity-tuple insn precedes children registers parent-index ; : ( insn -- node ) node new - node-number counter >>number swap >>insn H{ } clone >>precedes ; diff --git a/basis/compiler/cfg/scheduling/scheduling-tests.factor b/basis/compiler/cfg/scheduling/scheduling-tests.factor index d6127ded52..935ea1df04 100644 --- a/basis/compiler/cfg/scheduling/scheduling-tests.factor +++ b/basis/compiler/cfg/scheduling/scheduling-tests.factor @@ -160,15 +160,13 @@ IN: compiler.cfg.scheduling.tests ] unit-test { t f } [ - 0 node-number set-global test-some-kind-of-dep [ ] map - dup build-dependence-graph - - ! Anyone preceding node number 8? + test-some-kind-of-dep dup build-dependence-graph + ! Anyone preceding insn# 14? [ - [ precedes>> keys [ number>> ] map 8 swap member? ] any? + [ precedes>> keys [ insn>> insn#>> ] map 14 swap member? ] any? ] [ unclip-last over swap remove-node - [ precedes>> keys [ number>> ] map 8 swap member? ] any? + [ precedes>> keys [ insn>> insn#>> ] map 14 swap member? ] any? ] bi ] unit-test