compiler.cfg.debugger: new words build-optimized-tree and run-passes to

remove some duplicated code
db4
Björn Lindqvist 2015-04-22 16:33:24 +02:00 committed by John Benediktsson
parent 6215561ad4
commit 050e15ce83
1 changed files with 18 additions and 22 deletions

View File

@ -9,7 +9,7 @@ compiler.cfg.representations
compiler.cfg.representations.preferred compiler.cfg.rpo compiler.cfg.representations.preferred compiler.cfg.rpo
compiler.cfg.save-contexts compiler.cfg.save-contexts
compiler.cfg.utilities compiler.tree.builder compiler.cfg.utilities compiler.tree.builder
compiler.tree.optimizer compiler.units hashtables io kernel math compiler.tree.optimizer compiler.units fry hashtables io kernel math
namespaces prettyprint prettyprint.backend prettyprint.custom namespaces prettyprint prettyprint.backend prettyprint.custom
prettyprint.sections quotations random sequences vectors words ; prettyprint.sections quotations random sequences vectors words ;
FROM: compiler.cfg.linearization => number-blocks ; FROM: compiler.cfg.linearization => number-blocks ;
@ -17,36 +17,32 @@ IN: compiler.cfg.debugger
GENERIC: test-builder ( quot -- cfgs ) GENERIC: test-builder ( quot -- cfgs )
: build-optimized-tree ( callable/word -- tree )
reset-vreg-counter
build-tree optimize-tree ;
M: callable test-builder M: callable test-builder
reset-vreg-counter build-tree optimize-tree gensym build-cfg ; build-optimized-tree gensym build-cfg ;
M: word test-builder M: word test-builder
[ reset-vreg-counter build-tree optimize-tree ] keep build-cfg ; [ build-optimized-tree ] keep build-cfg ;
: run-passes ( cfgs passes -- cfgs' )
'[ dup cfg set dup _ apply-passes ] map ;
: test-ssa ( quot -- cfgs ) : test-ssa ( quot -- cfgs )
test-builder [ test-builder { optimize-cfg } run-passes ;
[
dup optimize-cfg
] with-cfg
] map ;
: test-flat ( quot -- cfgs ) : test-flat ( quot -- cfgs )
test-builder [ test-builder {
[ optimize-cfg
dup optimize-cfg select-representations
dup select-representations insert-gc-checks
dup insert-gc-checks insert-save-contexts
dup insert-save-contexts } run-passes ;
] with-cfg
] map ;
: test-regs ( quot -- cfgs ) : test-regs ( quot -- cfgs )
test-builder [ test-builder { optimize-cfg finalize-cfg } run-passes ;
[
dup optimize-cfg
dup finalize-cfg
] with-cfg
] map ;
GENERIC: insn. ( insn -- ) GENERIC: insn. ( insn -- )