2009-05-29 14:11:34 -04:00
|
|
|
! Copyright (C) 2009 Slava Pestov.
|
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
2009-07-07 14:01:27 -04:00
|
|
|
USING: kernel accessors math sequences grouping namespaces ;
|
2009-05-29 14:11:34 -04:00
|
|
|
IN: compiler.cfg.linear-scan.numbering
|
|
|
|
|
|
|
|
: number-instructions ( rpo -- )
|
|
|
|
[ 0 ] dip [
|
|
|
|
instructions>> [
|
|
|
|
[ (>>insn#) ] [ drop 2 + ] 2bi
|
|
|
|
] each
|
2009-07-07 14:01:27 -04:00
|
|
|
] each drop ;
|
|
|
|
|
|
|
|
SYMBOL: check-numbering?
|
|
|
|
|
|
|
|
ERROR: bad-numbering bb ;
|
|
|
|
|
|
|
|
: check-block-numbering ( bb -- )
|
|
|
|
dup instructions>> [ insn#>> ] map sift [ <= ] monotonic?
|
|
|
|
[ drop ] [ bad-numbering ] if ;
|
|
|
|
|
|
|
|
: check-numbering ( rpo -- )
|
|
|
|
check-numbering? get [ [ check-block-numbering ] each ] [ drop ] if ;
|