From e90712b1eddbf48b2d65705bfe727540fcf03317 Mon Sep 17 00:00:00 2001 From: Slava Pestov <slava@slava-pestovs-macbook-pro.local> Date: Fri, 30 Apr 2010 18:55:20 -0400 Subject: [PATCH] compiler.cfg: cleanup --- .../compiler/cfg/alias-analysis/alias-analysis.factor | 4 ++-- basis/compiler/cfg/rpo/rpo.factor | 4 ++-- basis/compiler/cfg/ssa/destruction/destruction.factor | 5 +---- .../cfg/value-numbering/value-numbering.factor | 4 ++-- basis/compiler/cfg/write-barrier/write-barrier.factor | 10 +++++----- 5 files changed, 12 insertions(+), 15 deletions(-) diff --git a/basis/compiler/cfg/alias-analysis/alias-analysis.factor b/basis/compiler/cfg/alias-analysis/alias-analysis.factor index ee60e112b7..3cf099d149 100644 --- a/basis/compiler/cfg/alias-analysis/alias-analysis.factor +++ b/basis/compiler/cfg/alias-analysis/alias-analysis.factor @@ -319,5 +319,5 @@ M: insn eliminate-dead-stores* ; compute-live-stores eliminate-dead-stores ; -: alias-analysis ( cfg -- cfg' ) - [ alias-analysis-step ] local-optimization ; +: alias-analysis ( cfg -- cfg ) + dup [ alias-analysis-step ] simple-optimization ; diff --git a/basis/compiler/cfg/rpo/rpo.factor b/basis/compiler/cfg/rpo/rpo.factor index 6e09d9885f..a76beca181 100644 --- a/basis/compiler/cfg/rpo/rpo.factor +++ b/basis/compiler/cfg/rpo/rpo.factor @@ -39,8 +39,8 @@ SYMBOL: visited [ drop basic-block set ] [ change-instructions drop ] 2bi ; inline -: local-optimization ( ... cfg quot: ( ... insns -- ... insns' ) -- ... cfg' ) - dupd '[ _ optimize-basic-block ] each-basic-block ; inline +: simple-optimization ( ... cfg quot: ( ... insns -- ... insns' ) -- ... ) + '[ _ optimize-basic-block ] each-basic-block ; inline : needs-post-order ( cfg -- cfg' ) dup post-order drop ; diff --git a/basis/compiler/cfg/ssa/destruction/destruction.factor b/basis/compiler/cfg/ssa/destruction/destruction.factor index ff174bc713..ede012eb2f 100644 --- a/basis/compiler/cfg/ssa/destruction/destruction.factor +++ b/basis/compiler/cfg/ssa/destruction/destruction.factor @@ -123,11 +123,8 @@ M: ##phi useful-insn? drop f ; M: insn useful-insn? drop t ; -: cleanup-block ( bb -- ) - instructions>> [ useful-insn? ] filter! drop ; - : cleanup-cfg ( cfg -- ) - [ cleanup-block ] each-basic-block ; + [ [ useful-insn? ] filter! ] simple-optimization ; PRIVATE> diff --git a/basis/compiler/cfg/value-numbering/value-numbering.factor b/basis/compiler/cfg/value-numbering/value-numbering.factor index ad3ccb1693..81e9d53bad 100644 --- a/basis/compiler/cfg/value-numbering/value-numbering.factor +++ b/basis/compiler/cfg/value-numbering/value-numbering.factor @@ -49,7 +49,7 @@ M: array process-instruction init-value-graph [ process-instruction ] map flatten ; -: value-numbering ( cfg -- cfg' ) - [ value-numbering-step ] local-optimization +: value-numbering ( cfg -- cfg ) + dup [ value-numbering-step ] simple-optimization cfg-changed predecessors-changed ; diff --git a/basis/compiler/cfg/write-barrier/write-barrier.factor b/basis/compiler/cfg/write-barrier/write-barrier.factor index cecf5f7251..a34bf6c07f 100644 --- a/basis/compiler/cfg/write-barrier/write-barrier.factor +++ b/basis/compiler/cfg/write-barrier/write-barrier.factor @@ -1,4 +1,4 @@ -! Copyright (C) 2008, 2009 Slava Pestov, Daniel Ehrenberg. +! Copyright (C) 2008, 2010 Slava Pestov, Daniel Ehrenberg. ! See http://factorcode.org/license.txt for BSD license. USING: accessors assocs combinators.short-circuit compiler.cfg.instructions compiler.cfg.rpo kernel namespaces @@ -35,10 +35,10 @@ M: ##copy eliminate-write-barrier M: insn eliminate-write-barrier drop t ; -: write-barriers-step ( bb -- ) +: write-barriers-step ( insns -- insns' ) H{ } clone fresh-allocations set H{ } clone mutated-objects set - instructions>> [ eliminate-write-barrier ] filter! drop ; + [ eliminate-write-barrier ] filter! ; -: eliminate-write-barriers ( cfg -- cfg' ) - dup [ write-barriers-step ] each-basic-block ; +: eliminate-write-barriers ( cfg -- cfg ) + dup [ write-barriers-step ] simple-optimization ;