diff --git a/basis/compiler/cfg/optimizer/optimizer-tests.factor b/basis/compiler/cfg/optimizer/optimizer-tests.factor index 5cc01173ad..b81d9f81f5 100644 --- a/basis/compiler/cfg/optimizer/optimizer-tests.factor +++ b/basis/compiler/cfg/optimizer/optimizer-tests.factor @@ -1,8 +1,14 @@ USING: arrays sequences tools.test compiler.cfg.checker compiler.cfg.debugger -compiler.cfg.def-use sets kernel ; +compiler.cfg.def-use sets kernel kernel.private fry slots.private ; IN: compiler.cfg.optimizer.tests ! Miscellaneous tests -[ ] [ [ 1array ] test-mr first check-mr ] unit-test -[ ] [ [ 1 2 ? ] test-mr first check-mr ] unit-test \ No newline at end of file +{ + [ 1array ] + [ 1 2 ? ] + [ { array } declare [ ] map ] + [ { array } declare dup 1 slot [ 1 slot ] when ] +} [ + [ [ ] ] dip '[ _ test-mr first check-mr ] unit-test +] each diff --git a/basis/compiler/cfg/stack-analysis/stack-analysis-tests.factor b/basis/compiler/cfg/stack-analysis/stack-analysis-tests.factor index d43900018e..e846ebc28f 100644 --- a/basis/compiler/cfg/stack-analysis/stack-analysis-tests.factor +++ b/basis/compiler/cfg/stack-analysis/stack-analysis-tests.factor @@ -3,7 +3,8 @@ compiler.cfg.predecessors compiler.cfg.stack-analysis compiler.cfg.instructions sequences kernel tools.test accessors sequences.private alien math combinators.private compiler.cfg compiler.cfg.checker compiler.cfg.height compiler.cfg.rpo -compiler.cfg.dce compiler.cfg.registers sets ; +compiler.cfg.dce compiler.cfg.registers compiler.cfg.useless-blocks +sets ; IN: compiler.cfg.stack-analysis.tests ! Fundamental invariant: a basic block should not load or store a value more than once @@ -22,9 +23,11 @@ IN: compiler.cfg.stack-analysis.tests : test-stack-analysis ( quot -- mr ) dup cfg? [ test-cfg first ] unless dup compute-predecessors + dup delete-useless-blocks + dup delete-useless-conditionals reverse-post-order - dup stack-analysis dup normalize-height + dup stack-analysis dup check-rpo dup check-for-redundant-ops ;