compiler.*: moving all words only relevant for testing to compiler.test

char-rename
Björn Lindqvist 2016-08-12 14:29:01 +02:00
parent ae85746787
commit a36c0cb5ac
25 changed files with 155 additions and 174 deletions

View File

@ -1,7 +1,6 @@
USING: accessors assocs compiler.cfg.utilities compiler.cfg
compiler.cfg.branch-splitting compiler.cfg.debugger
compiler.cfg.predecessors compiler.cfg.rpo compiler.cfg.instructions fry kernel
tools.test namespaces sequences vectors ;
USING: accessors assocs compiler.cfg.branch-splitting
compiler.cfg.instructions compiler.cfg.predecessors compiler.cfg.rpo
compiler.cfg.utilities compiler.test fry kernel namespaces tools.test ;
IN: compiler.cfg.branch-splitting.tests
: get-predecessors ( cfg -- assoc )

View File

@ -1,6 +1,6 @@
USING: accessors compiler.cfg compiler.cfg.copy-prop compiler.cfg.debugger
compiler.cfg.instructions compiler.cfg.registers compiler.cfg.utilities
cpu.architecture kernel namespaces tools.test ;
USING: accessors compiler.cfg.copy-prop compiler.cfg.instructions
compiler.cfg.registers compiler.cfg.utilities compiler.test
cpu.architecture namespaces tools.test ;
IN: compiler.cfg.copy-prop.tests
: test-copy-propagation ( -- )

View File

@ -1,17 +1,14 @@
! Copyright (C) 2008, 2011 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs classes.tuple compiler.cfg
compiler.cfg.builder compiler.cfg.def-use
compiler.cfg.finalization compiler.cfg.gc-checks
compiler.cfg.builder compiler.cfg.finalization compiler.cfg.gc-checks
compiler.cfg.instructions compiler.cfg.linearization
compiler.cfg.optimizer compiler.cfg.registers
compiler.cfg.representations
compiler.cfg.representations.preferred compiler.cfg.rpo
compiler.cfg.save-contexts
compiler.cfg.utilities compiler.tree.builder
compiler.tree.optimizer compiler.units fry hashtables io kernel math
namespaces prettyprint prettyprint.backend prettyprint.custom
prettyprint.sections quotations random sequences vectors words strings ;
compiler.cfg.representations compiler.cfg.save-contexts
compiler.cfg.utilities compiler.tree.builder compiler.tree.optimizer
fry io kernel namespaces prettyprint prettyprint.backend
prettyprint.custom prettyprint.sections quotations sequences strings
words ;
FROM: compiler.cfg.linearization => number-blocks ;
IN: compiler.cfg.debugger
@ -91,38 +88,3 @@ M: insn insn. tuple>array but-last [
M: ds-loc pprint* \ D: pprint-loc ;
M: rs-loc pprint* \ R: pprint-loc ;
: resolve-phis ( bb -- )
[
[ [ [ get ] dip ] assoc-map ] change-inputs drop
] each-phi ;
: test-bb ( insns n -- )
[ insns>block dup ] keep set resolve-phis ;
: edge ( from to -- )
[ get ] bi@ 1vector >>successors drop ;
: edges ( from tos -- )
[ get ] [ [ get ] V{ } map-as ] bi* >>successors drop ;
: test-diamond ( -- )
0 1 edge
1 { 2 3 } edges
2 4 edge
3 4 edge ;
: fake-representations ( cfg -- )
post-order [
instructions>> [
[ [ temp-vregs ] [ temp-vreg-reps ] bi zip ]
[ [ defs-vregs ] [ defs-vreg-reps ] bi zip ]
bi append
] map concat
] map concat >hashtable representations set ;
: count-insns ( quot insn-check -- ? )
[ test-regs [ cfg>insns ] map concat ] dip count ; inline
: contains-insn? ( quot insn-check -- ? )
count-insns 0 > ; inline

View File

@ -1,9 +1,8 @@
! Copyright (C) 2009 Daniel Ehrenberg.
! See http://factorcode.org/license.txt for BSD license.
USING: kernel tools.test accessors vectors sequences namespaces
arrays compiler.cfg.def-use compiler.cfg compiler.cfg.debugger
compiler.cfg.instructions compiler.cfg.registers compiler.cfg.utilities
cpu.architecture ;
USING: compiler.cfg.def-use compiler.cfg.instructions
compiler.cfg.registers compiler.cfg.utilities compiler.test namespaces
tools.test ;
IN: compiler.cfg.def-use.tests
! compute-insns

View File

@ -1,7 +1,6 @@
USING: accessors arrays assocs compiler.cfg compiler.cfg.dominance
compiler.cfg.dominance.private compiler.cfg.debugger compiler.cfg.predecessors
compiler.cfg.utilities grouping kernel math.ranges namespaces sequences sets
tools.test vectors ;
USING: accessors arrays assocs compiler.cfg.dominance
compiler.cfg.dominance.private compiler.cfg.utilities compiler.test
grouping kernel math.ranges namespaces sequences sets tools.test ;
IN: compiler.cfg.dominance.tests
: test-dominance ( -- )

View File

@ -1,9 +1,9 @@
USING: accessors alien arrays byte-arrays combinators.short-circuit
compiler.cfg compiler.cfg.comparisons compiler.cfg.debugger
compiler.cfg.gc-checks compiler.cfg.gc-checks.private
compiler.cfg.instructions compiler.cfg.registers compiler.cfg.rpo
compiler.cfg.utilities compiler.test cpu.architecture kernel layouts
math memory namespaces sequences tools.test ;
compiler.cfg compiler.cfg.comparisons compiler.cfg.gc-checks
compiler.cfg.gc-checks.private compiler.cfg.instructions
compiler.cfg.registers compiler.cfg.rpo compiler.cfg.utilities
compiler.test cpu.architecture kernel layouts math memory namespaces
sequences tools.test ;
IN: compiler.cfg.gc-checks.tests
! insert-gc-check?

View File

@ -1,6 +1,6 @@
USING: accessors assocs compiler.cfg.debugger compiler.cfg
compiler.cfg.linearization compiler.cfg.linearization.private
compiler.cfg.utilities dlists kernel make namespaces sequences tools.test ;
USING: accessors assocs compiler.cfg.linearization
compiler.cfg.linearization.private compiler.cfg.utilities
compiler.test kernel make namespaces sequences tools.test ;
IN: compiler.cfg.linearization.tests
! linearization-order

View File

@ -1,9 +1,9 @@
USING: accessors alien assocs compiler.cfg compiler.cfg.comparisons
compiler.cfg.debugger compiler.cfg.def-use compiler.cfg.instructions
compiler.cfg.liveness compiler.cfg.registers
compiler.cfg.ssa.destruction.leaders compiler.cfg.utilities
cpu.architecture cpu.x86.assembler.operands kernel math namespaces
sequences system tools.test ;
compiler.cfg.def-use compiler.cfg.instructions compiler.cfg.liveness
compiler.cfg.registers compiler.cfg.ssa.destruction.leaders
compiler.cfg.utilities compiler.test cpu.architecture
cpu.x86.assembler.operands kernel math namespaces sequences system
tools.test ;
IN: compiler.cfg.liveness.tests
QUALIFIED: sets

View File

@ -1,7 +1,6 @@
USING: accessors compiler.cfg.debugger
compiler.cfg.loop-detection compiler.cfg.loop-detection.private
compiler.cfg.utilities kernel namespaces sequences sets
tools.test ;
USING: accessors compiler.cfg.loop-detection
compiler.cfg.loop-detection.private compiler.cfg.utilities
compiler.test kernel namespaces sequences sets tools.test ;
IN: compiler.cfg.loop-detection.tests
{ V{ 0 } { 1 } } [

View File

@ -1,10 +1,6 @@
USING: arrays sequences kernel namespaces accessors compiler.cfg
compiler.cfg.instructions
compiler.cfg.registers
compiler.cfg.debugger
compiler.cfg.representations.coalescing
compiler.cfg.utilities
tools.test ;
USING: compiler.cfg.instructions compiler.cfg.registers
compiler.cfg.representations.coalescing compiler.cfg.utilities
compiler.test kernel namespaces tools.test ;
IN: compiler.cfg.representations.coalescing.tests
: test-scc ( -- )

View File

@ -1,11 +1,9 @@
USING: accessors compiler.cfg compiler.cfg.debugger
USING: accessors compiler.cfg compiler.cfg.comparisons
compiler.cfg.instructions compiler.cfg.registers
compiler.cfg.representations.preferred cpu.architecture kernel
namespaces tools.test sequences arrays system literals layouts
math compiler.constants compiler.cfg.representations.conversion
compiler.cfg.representations.rewrite
compiler.cfg.comparisons compiler.cfg.utilities
make ;
compiler.cfg.representations.conversion
compiler.cfg.representations.preferred compiler.cfg.utilities
compiler.constants compiler.test cpu.architecture kernel layouts
literals make math namespaces sequences system tools.test ;
FROM: alien.c-types => char ;
IN: compiler.cfg.representations

View File

@ -1,7 +1,6 @@
USING: accessors compiler.cfg.debugger
compiler.cfg.instructions compiler.cfg.registers
compiler.cfg.save-contexts kernel namespaces tools.test
cpu.x86.assembler.operands cpu.architecture ;
USING: accessors compiler.cfg.instructions compiler.cfg.registers
compiler.cfg.save-contexts compiler.test cpu.architecture kernel
namespaces tools.test ;
IN: compiler.cfg.save-contexts.tests
! insns-needs-save-context?

View File

@ -1,9 +1,7 @@
USING: accessors compiler.cfg compiler.cfg.debugger
compiler.cfg.dominance compiler.cfg.instructions
compiler.cfg.predecessors compiler.cfg.ssa.construction assocs
compiler.cfg.registers compiler.cfg.ssa.construction.private
compiler.cfg.utilities cpu.architecture kernel namespaces sequences tools.test
vectors ;
USING: accessors assocs compiler.cfg compiler.cfg.instructions
compiler.cfg.registers compiler.cfg.ssa.construction
compiler.cfg.ssa.construction.private compiler.cfg.utilities
compiler.test kernel namespaces sequences tools.test ;
IN: compiler.cfg.ssa.construction.tests
! insert-phi-later

View File

@ -1,6 +1,6 @@
USING: accessors arrays compiler.cfg compiler.cfg.debugger
USING: accessors arrays compiler.cfg
compiler.cfg.ssa.construction.tdmsc compiler.cfg.utilities
kernel namespaces sequences tools.test ;
compiler.test kernel namespaces sequences tools.test ;
QUALIFIED: sets
IN: compiler.cfg.ssa.construction.tdmsc.tests

View File

@ -1,13 +1,10 @@
USING: accessors compiler.cfg compiler.cfg.debugger
compiler.cfg.def-use compiler.cfg.dominance
compiler.cfg.instructions compiler.cfg.liveness
compiler.cfg.registers compiler.cfg.predecessors
compiler.cfg.comparisons compiler.cfg.ssa.interference
compiler.cfg.ssa.interference.private
USING: accessors alien.c-types compiler.cfg.comparisons
compiler.cfg.def-use compiler.cfg.instructions compiler.cfg.liveness
compiler.cfg.registers compiler.cfg.ssa.interference
compiler.cfg.ssa.interference.live-ranges
compiler.cfg.utilities
cpu.architecture kernel namespaces tools.test alien.c-types
arrays sequences slots ;
compiler.cfg.ssa.interference.private compiler.cfg.utilities
compiler.test cpu.architecture kernel namespaces sequences slots
tools.test ;
IN: compiler.cfg.ssa.interference.tests
: test-interference ( -- )

View File

@ -1,6 +1,6 @@
USING: accessors arrays assocs compiler.cfg.instructions compiler.cfg.registers
compiler.cfg.stacks.padding compiler.cfg.utilities kernel sequences sorting
vectors tools.test ;
compiler.cfg.stacks.padding compiler.cfg.utilities compiler.test kernel
sequences sorting vectors tools.test ;
IN: compiler.cfg.stacks.padding.tests
! classify-read: initialized locations

View File

@ -83,9 +83,6 @@ IN: compiler.cfg.utilities
: connect-Nto1-bbs ( froms to -- )
'[ _ connect-bbs ] each ;
: make-edges ( block-map edgelist -- )
[ [ of ] with map first2 connect-bbs ] with each ;
! Abstract generic stuff
MACRO: apply-passes ( passes -- quot: ( obj -- ) )
unclip-last [ [ 1array \ dup prefix ] map [ ] concat-as ] dip suffix ;

View File

@ -1,10 +1,9 @@
USING: accessors alien assocs combinators.short-circuit
compiler.cfg compiler.cfg.comparisons compiler.cfg.dce
compiler.cfg.debugger compiler.cfg.instructions
USING: accessors alien assocs combinators.short-circuit compiler.cfg
compiler.cfg.comparisons compiler.cfg.dce compiler.cfg.instructions
compiler.cfg.registers compiler.cfg.representations
compiler.cfg.ssa.destruction compiler.cfg.utilities
compiler.cfg.value-numbering cpu.architecture kernel layouts
literals math namespaces sequences system tools.test ;
compiler.cfg.value-numbering compiler.test cpu.architecture kernel
layouts literals math namespaces sequences system tools.test ;
! need cfg simd loaded for some tests
USE: compiler.cfg.value-numbering.simd
QUALIFIED-WITH: alien.c-types c

View File

@ -1,7 +1,14 @@
! Copyright (C) 2010 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors arrays compiler.cfg compiler.units kernel sequences
stack-checker tools.test vocabs words ;
USING: accessors arrays assocs compiler.cfg compiler.cfg.debugger
compiler.cfg.def-use compiler.cfg.linearization compiler.cfg.registers
compiler.cfg.representations.preferred compiler.cfg.rpo
compiler.cfg.stacks compiler.cfg.stacks.local compiler.cfg.utilities
compiler.tree.builder compiler.tree.checker compiler.tree.def-use
compiler.tree.normalization compiler.tree.propagation
compiler.tree.propagation.info compiler.tree.recursive compiler.units
fry hashtables kernel math namespaces sequences stack-checker
tools.test vectors vocabs words ;
IN: compiler.test
: decompile ( word -- )
@ -18,9 +25,6 @@ IN: compiler.test
: compiler-test ( name -- )
"resource:basis/compiler/tests/" ".factor" surround run-test-file ;
USING: compiler.cfg.registers compiler.cfg.stacks compiler.cfg.stacks.local
fry namespaces ;
: init-cfg-test ( -- )
reset-vreg-counter begin-stack-analysis
<basic-block> dup basic-block set begin-local-analysis
@ -29,3 +33,56 @@ fry namespaces ;
: cfg-unit-test ( result quot -- )
'[ init-cfg-test @ ] unit-test ; inline
: edge ( from to -- )
[ get ] bi@ 1vector >>successors drop ;
: edges ( from tos -- )
[ get ] [ [ get ] V{ } map-as ] bi* >>successors drop ;
: test-diamond ( -- )
0 1 edge
1 { 2 3 } edges
2 4 edge
3 4 edge ;
: resolve-phis ( bb -- )
[
[ [ [ get ] dip ] assoc-map ] change-inputs drop
] each-phi ;
: test-bb ( insns n -- )
[ insns>block dup ] keep set resolve-phis ;
: fake-representations ( cfg -- )
post-order [
instructions>> [
[ [ temp-vregs ] [ temp-vreg-reps ] bi zip ]
[ [ defs-vregs ] [ defs-vreg-reps ] bi zip ]
bi append
] map concat
] map concat >hashtable representations set ;
: count-insns ( quot insn-check -- ? )
[ test-regs [ cfg>insns ] map concat ] dip count ; inline
: contains-insn? ( quot insn-check -- ? )
count-insns 0 > ; inline
: make-edges ( block-map edgelist -- )
[ [ of ] with map first2 connect-bbs ] with each ;
: final-info ( quot -- seq )
build-tree
analyze-recursive
normalize
propagate
compute-def-use
dup check-nodes
last node-input-infos ;
: final-classes ( quot -- seq )
final-info [ class>> ] map ;
: final-literals ( quot -- seq )
final-info [ literal>> ] map ;

View File

@ -1,10 +1,9 @@
USING: accessors assocs combinators compiler compiler.cfg
compiler.cfg.debugger compiler.cfg.instructions
compiler.cfg.registers compiler.cfg.linear-scan
compiler.cfg.ssa.destruction compiler.cfg.build-stack-frame
compiler.cfg.utilities 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 ;
USING: alien.c-types arrays assocs combinators compiler.cfg
compiler.cfg.build-stack-frame compiler.cfg.instructions
compiler.cfg.linear-scan compiler.cfg.registers
compiler.cfg.ssa.destruction compiler.cfg.utilities compiler.codegen
compiler.test compiler.units cpu.architecture hashtables kernel
layouts literals math namespaces sequences tools.test words ;
IN: compiler.tests.low-level-ir
: compile-cfg ( cfg -- word )

View File

@ -184,22 +184,6 @@ SYMBOL: node-count
make-report report. ;
! More utilities
: final-info ( quot -- seq )
build-tree
analyze-recursive
normalize
propagate
compute-def-use
dup check-nodes
last node-input-infos ;
: final-classes ( quot -- seq )
final-info [ class>> ] map ;
: final-literals ( quot -- seq )
final-info [ literal>> ] map ;
: cleaned-up-tree ( quot -- nodes )
[
build-tree

View File

@ -1,9 +1,10 @@
! Copyright (C) 2009 Slava Pestov, Daniel Ehrenberg.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors combinators combinators.private compiler.tree
compiler.tree.propagation.call-effect compiler.units math effects kernel
compiler.tree.builder compiler.tree.optimizer compiler.tree.debugger sequences
eval fry kernel.private tools.test ;
USING: accessors combinators combinators.private compiler.test
compiler.tree compiler.tree.builder compiler.tree.debugger
compiler.tree.optimizer compiler.tree.propagation.call-effect
compiler.units effects eval fry kernel kernel.private math sequences
tools.test ;
IN: compiler.tree.propagation.call-effect.tests
! cached-effect

View File

@ -1,13 +1,13 @@
USING: accessors alien alien.accessors alien.c-types alien.data arrays
assocs byte-arrays classes classes.algebra classes.struct
classes.tuple.private combinators.short-circuit compiler.tree
compiler.tree.builder compiler.tree.debugger compiler.tree.optimizer
compiler.tree.propagation.info effects fry generic.single hashtables
kernel kernel.private layouts literals locals math math.floats.private
math.functions math.integers.private math.intervals math.libm
math.order math.private quotations sequences sequences.private sets
slots.private sorting specialized-arrays strings strings.private
system tools.test vectors vocabs words ;
classes.tuple.private combinators.short-circuit compiler.test
compiler.tree compiler.tree.builder compiler.tree.debugger
compiler.tree.optimizer compiler.tree.propagation.info effects fry
generic.single hashtables kernel kernel.private layouts literals
locals math math.floats.private math.functions math.integers.private
math.intervals math.libm math.order math.private quotations sequences
sequences.private sets slots.private sorting specialized-arrays
strings strings.private system tools.test vectors vocabs words ;
FROM: math => float ;
SPECIALIZED-ARRAY: double
SPECIALIZED-ARRAY: void*

View File

@ -1,9 +1,8 @@
USING: compiler.cfg.debugger compiler.cfg.instructions
compiler.cfg.registers compiler.codegen.gc-maps
compiler.codegen.relocation cpu.architecture cpu.x86 cpu.x86.assembler
cpu.x86.assembler.operands cpu.x86.features kernel kernel.private
layouts literals make math math.libm namespaces sequences system
tools.test ;
USING: compiler.cfg.instructions compiler.cfg.registers
compiler.codegen.gc-maps compiler.codegen.relocation compiler.test
cpu.architecture cpu.x86 cpu.x86.assembler cpu.x86.assembler.operands
cpu.x86.features kernel kernel.private layouts literals make math
math.libm namespaces sequences system tools.test ;
IN: cpu.x86.tests
{ } [

View File

@ -1,12 +1,11 @@
! Copyright (C) 2011 Alex Vondrak.
! See http://factorcode.org/license.txt for BSD license.
USING: accessors assocs compiler.cfg compiler.cfg.debugger
compiler.cfg.graphviz compiler.cfg.gvn
compiler.cfg.gvn.expressions compiler.cfg.gvn.graph
compiler.cfg.optimizer compiler.cfg.utilities continuations formatting graphviz
graphviz.notation graphviz.render io.directories kernel
math.parser namespaces prettyprint sequences sorting splitting
tools.annotations ;
USING: accessors assocs compiler.cfg compiler.cfg.graphviz
compiler.cfg.gvn compiler.cfg.gvn.expressions compiler.cfg.gvn.graph
compiler.cfg.optimizer compiler.cfg.utilities compiler.test
continuations formatting graphviz.notation graphviz.render
io.directories kernel math.parser namespaces prettyprint sequences
sorting splitting tools.annotations ;
IN: compiler.cfg.gvn.testing
GENERIC: expr>str ( expr -- str )