From 15f9ba276346720828826ad99627257252d59610 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Sat, 23 Mar 2013 18:39:15 -0700 Subject: [PATCH] Revert "compiler.cfg.ssa.construction.tdmsc: more use of ?adjoin." This reverts commit 6bf55a6d89893c0f97b692be1c56147c6a3f9ea6. --- .../cfg/ssa/construction/tdmsc/tdmsc.factor | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/basis/compiler/cfg/ssa/construction/tdmsc/tdmsc.factor b/basis/compiler/cfg/ssa/construction/tdmsc/tdmsc.factor index 188ef3ba58..75d9d80f37 100644 --- a/basis/compiler/cfg/ssa/construction/tdmsc/tdmsc.factor +++ b/basis/compiler/cfg/ssa/construction/tdmsc/tdmsc.factor @@ -32,9 +32,10 @@ SYMBOLS: visited merge-sets levels again? ; : level ( bb -- n ) levels get at ; inline : update-merge-set ( tmp to -- ) - [ merge-sets get ] dip over '[ + [ merge-sets get ] dip + '[ _ - [ _ at union ] + [ merge-sets get at union ] [ number>> over adjoin ] bi ] change-at ; @@ -49,18 +50,23 @@ 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 get ?adjoin - [ 2drop ] [ consistent? [ again? on ] unless ] if + 2dup 2array visited? [ + consistent? [ again? on ] unless + ] [ 2drop ] if ] each-incoming-j-edge ; : process-edge ( from to -- ) - 2dup 2array visited get ?adjoin - [ (process-edge) ] [ 2drop ] if ; + 2dup 2array dup visited? [ 3drop ] [ + visited get adjoin + (process-edge) + ] if ; : process-block ( bb -- ) [ process-edge ] each-incoming-j-edge ;