From 93fb7805b028c5a434b4e7affa243db03329cf28 Mon Sep 17 00:00:00 2001 From: John Benediktsson Date: Sat, 23 Mar 2013 17:46:45 -0700 Subject: [PATCH] compiler: more use of ?adjoin. --- basis/compiler/cfg/dce/dce.factor | 8 +++----- basis/compiler/cfg/rpo/rpo.factor | 5 ++--- basis/compiler/cfg/ssa/construction/construction.factor | 6 +++--- basis/compiler/cfg/utilities/utilities.factor | 7 +++---- 4 files changed, 11 insertions(+), 15 deletions(-) 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>> [ post-order-traversal ] each ] [ , ] bi - ] if ; inline recursive + ] [ drop ] if ; inline recursive : number-blocks ( blocks -- ) dup length iota 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 ;