diff --git a/basis/compiler/cfg/dce/dce.factor b/basis/compiler/cfg/dce/dce.factor index 1a5d264891..28c75ec18a 100644 --- a/basis/compiler/cfg/dce/dce.factor +++ b/basis/compiler/cfg/dce/dce.factor @@ -59,11 +59,9 @@ GENERIC: compute-live-vregs ( insn -- ) : (record-live) ( vregs -- ) [ - dup live-vreg? [ drop ] [ - [ live-vregs get adjoin ] - [ liveness-graph get at (record-live) ] - bi - ] if + dup live-vregs get ?adjoin [ + liveness-graph get at (record-live) + ] [ drop ] if ] each ; : record-live ( insn -- ) diff --git a/basis/compiler/cfg/rpo/rpo.factor b/basis/compiler/cfg/rpo/rpo.factor index ec89853b7b..877f7770a7 100644 --- a/basis/compiler/cfg/rpo/rpo.factor +++ b/basis/compiler/cfg/rpo/rpo.factor @@ -6,13 +6,12 @@ FROM: namespaces => set ; IN: compiler.cfg.rpo : post-order-traversal ( visited bb -- visited ) - dup pick in? [ drop ] [ - dup pick adjoin + dup pick ?adjoin [ [ successors>> <reversed> [ post-order-traversal ] each ] [ , ] bi - ] if ; inline recursive + ] [ drop ] if ; inline recursive : number-blocks ( blocks -- ) dup length iota <reversed> diff --git a/basis/compiler/cfg/ssa/construction/construction.factor b/basis/compiler/cfg/ssa/construction/construction.factor index e395f52e22..bec0971e03 100644 --- a/basis/compiler/cfg/ssa/construction/construction.factor +++ b/basis/compiler/cfg/ssa/construction/construction.factor @@ -87,9 +87,9 @@ SYMBOLS: stacks pushed ; : gen-name ( vreg -- vreg' ) [ next-vreg dup ] dip - dup pushed get 2dup in? - [ 2drop stacks get at set-last ] - [ adjoin stacks get push-at ] + dup pushed get ?adjoin + [ stacks get push-at ] + [ stacks get at set-last ] if ; : (top-name) ( vreg -- vreg' ) diff --git a/basis/compiler/cfg/utilities/utilities.factor b/basis/compiler/cfg/utilities/utilities.factor index 9fdd771f61..1e6c733d54 100644 --- a/basis/compiler/cfg/utilities/utilities.factor +++ b/basis/compiler/cfg/utilities/utilities.factor @@ -19,12 +19,11 @@ IN: compiler.cfg.utilities } 1&& ; : (skip-empty-blocks) ( visited bb -- visited bb' ) - dup pick in? [ - dup empty-block? [ - dup pick adjoin + dup empty-block? [ + dup pick ?adjoin [ successors>> first (skip-empty-blocks) ] when - ] unless ; inline recursive + ] when ; inline recursive : skip-empty-blocks ( bb -- bb' ) [ HS{ } clone ] dip (skip-empty-blocks) nip ;