compiler.cfg.debugger: add random-scheduling word.

Run 'random-scheduling "compiler" test' to find bugs in compiler.cfg.dependencies.
db4
Slava Pestov 2011-08-28 21:23:49 -07:00
parent 3ed1910ab1
commit 34f71ea042
1 changed files with 9 additions and 3 deletions

View File

@ -1,9 +1,9 @@
! Copyright (C) 2008, 2010 Slava Pestov. ! Copyright (C) 2008, 2011 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: kernel words sequences quotations namespaces io vectors USING: kernel words sequences quotations namespaces io vectors
arrays hashtables classes.tuple math accessors prettyprint arrays hashtables classes.tuple math accessors prettyprint
prettyprint.config assocs prettyprint.backend prettyprint.custom prettyprint.config assocs prettyprint.backend prettyprint.custom
prettyprint.sections parser compiler.tree.builder prettyprint.sections parser random compiler.tree.builder
compiler.tree.optimizer cpu.architecture compiler.cfg.builder compiler.tree.optimizer cpu.architecture compiler.cfg.builder
compiler.cfg.linearization compiler.cfg.registers compiler.cfg.linearization compiler.cfg.registers
compiler.cfg.stack-frame compiler.cfg.linear-scan compiler.cfg.stack-frame compiler.cfg.linear-scan
@ -12,7 +12,8 @@ compiler.cfg.instructions compiler.cfg.utilities
compiler.cfg.def-use compiler.cfg.rpo compiler.cfg.def-use compiler.cfg.rpo
compiler.cfg.representations compiler.cfg.gc-checks compiler.cfg.representations compiler.cfg.gc-checks
compiler.cfg.save-contexts compiler.cfg compiler.cfg.save-contexts compiler.cfg
compiler.cfg.representations.preferred ; compiler.cfg.representations.preferred
compiler.cfg.scheduling compiler.units ;
FROM: compiler.cfg.linearization => number-blocks ; FROM: compiler.cfg.linearization => number-blocks ;
IN: compiler.cfg.debugger IN: compiler.cfg.debugger
@ -132,3 +133,8 @@ M: rs-loc pprint* \ R pprint-loc ;
: contains-insn? ( quot insn-check -- ? ) : contains-insn? ( quot insn-check -- ? )
count-insns 0 > ; inline count-insns 0 > ; inline
! Random instruction scheduling exposes bugs in
! compiler.cfg.dependencies
: random-scheduling ( -- )
[ \ score [ drop 100 random ] define ] with-compilation-unit ;