compiler.cfg.ssa.construction.tdmsc: more use of ?adjoin.

db4
John Benediktsson 2013-03-23 17:57:41 -07:00
parent 93fb7805b0
commit 56a7cf4df2
1 changed files with 6 additions and 12 deletions

View File

@ -32,10 +32,9 @@ SYMBOLS: visited merge-sets levels again? ;
: level ( bb -- n ) levels get at ; inline
: update-merge-set ( tmp to -- )
[ merge-sets get ] dip
'[
[ merge-sets get ] dip over '[
_
[ merge-sets get at union ]
[ _ at union ]
[ number>> over adjoin ]
bi
] change-at ;
@ -50,23 +49,18 @@ SYMBOLS: visited merge-sets levels again? ;
[ [ predecessors>> ] keep ] dip
'[ _ 2dup j-edge? _ [ 2drop ] if ] each ; inline
: visited? ( pair -- ? ) visited get in? ;
: consistent? ( snode lnode -- ? )
[ merge-sets get at ] bi@ subset? ;
: (process-edge) ( from to -- )
f walk [
2dup 2array visited? [
consistent? [ again? on ] unless
] [ 2drop ] if
2dup 2array visited get ?adjoin
[ 2drop ] [ consistent? [ again? on ] unless ] if
] each-incoming-j-edge ;
: process-edge ( from to -- )
2dup 2array dup visited? [ 3drop ] [
visited get adjoin
(process-edge)
] if ;
2dup 2array visited get ?adjoin
[ (process-edge) ] [ 2drop ] if ;
: process-block ( bb -- )
[ process-edge ] each-incoming-j-edge ;