2010-01-02 07:03:30 -05:00
|
|
|
! Copyright (C) 2009, 2010 Slava Pestov.
|
2009-05-25 20:16:58 -04:00
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
2009-09-09 14:44:54 -04:00
|
|
|
USING: kernel combinators.short-circuit accessors math sequences
|
|
|
|
sets assocs compiler.cfg.instructions compiler.cfg.rpo
|
|
|
|
compiler.cfg.def-use compiler.cfg.linearization
|
2010-05-02 18:48:41 -04:00
|
|
|
compiler.cfg.utilities compiler.cfg.finalization
|
2010-04-28 04:47:38 -04:00
|
|
|
compiler.utilities ;
|
2009-05-25 20:16:58 -04:00
|
|
|
IN: compiler.cfg.checker
|
|
|
|
|
2009-05-28 03:49:51 -04:00
|
|
|
ERROR: bad-successors ;
|
|
|
|
|
|
|
|
: check-successors ( bb -- )
|
2009-10-28 16:02:00 -04:00
|
|
|
dup successors>> [ predecessors>> member-eq? ] with all?
|
2009-05-28 03:49:51 -04:00
|
|
|
[ bad-successors ] unless ;
|
|
|
|
|
2009-05-25 20:16:58 -04:00
|
|
|
: check-cfg ( cfg -- )
|
2010-05-09 21:36:52 -04:00
|
|
|
[ check-successors ] each-basic-block ;
|