From 5fe9ce4235db2e5724d747e4d7c9093d981d35cd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Lindqvist?= Date: Wed, 10 Dec 2014 16:14:08 +0100 Subject: [PATCH] compiler.cfg: fix stack effect of cfg-changed and predecessors changed to ( cfg -- ) --- .../compiler/cfg/block-joining/block-joining.factor | 13 ++++++------- .../cfg/branch-splitting/branch-splitting.factor | 2 +- basis/compiler/cfg/cfg.factor | 8 ++++---- basis/compiler/cfg/copy-prop/copy-prop.factor | 2 +- basis/compiler/cfg/gc-checks/gc-checks.factor | 2 +- .../compiler/cfg/linear-scan/resolve/resolve.factor | 2 +- basis/compiler/cfg/ssa/cssa/cssa.factor | 2 +- basis/compiler/cfg/stacks/finalize/finalize.factor | 2 +- basis/compiler/cfg/tco/tco.factor | 6 +++--- .../useless-conditionals.factor | 11 ++++++----- .../cfg/value-numbering/value-numbering.factor | 5 +++-- extra/compiler/cfg/gvn/gvn.factor | 3 +-- 12 files changed, 29 insertions(+), 29 deletions(-) diff --git a/basis/compiler/cfg/block-joining/block-joining.factor b/basis/compiler/cfg/block-joining/block-joining.factor index 93f48b52bb..39faa05790 100644 --- a/basis/compiler/cfg/block-joining/block-joining.factor +++ b/basis/compiler/cfg/block-joining/block-joining.factor @@ -28,10 +28,9 @@ IN: compiler.cfg.block-joining : join-blocks ( cfg -- ) needs-predecessors - - dup post-order [ - dup join-block? - [ dup predecessor join-block ] [ drop ] if - ] each - - cfg-changed predecessors-changed drop ; + [ + post-order [ + dup join-block? + [ dup predecessor join-block ] [ drop ] if + ] each + ] [ cfg-changed ] [ predecessors-changed ] tri ; diff --git a/basis/compiler/cfg/branch-splitting/branch-splitting.factor b/basis/compiler/cfg/branch-splitting/branch-splitting.factor index fd9eea23df..f323ed4afd 100644 --- a/basis/compiler/cfg/branch-splitting/branch-splitting.factor +++ b/basis/compiler/cfg/branch-splitting/branch-splitting.factor @@ -104,4 +104,4 @@ SYMBOL: visited successors>> [ add-to-worklist ] each ] slurp-deque - cfg-changed drop ; + cfg-changed ; diff --git a/basis/compiler/cfg/cfg.factor b/basis/compiler/cfg/cfg.factor index 7fde6c1371..c8625229bf 100644 --- a/basis/compiler/cfg/cfg.factor +++ b/basis/compiler/cfg/cfg.factor @@ -34,14 +34,14 @@ predecessors-valid? dominance-valid? loops-valid? ; swap >>word swap >>entry ; -: cfg-changed ( cfg -- cfg ) +: cfg-changed ( cfg -- ) f >>post-order f >>linear-order f >>dominance-valid? - f >>loops-valid? ; inline + f >>loops-valid? drop ; inline -: predecessors-changed ( cfg -- cfg ) - f >>predecessors-valid? ; +: predecessors-changed ( cfg -- ) + f >>predecessors-valid? drop ; : with-cfg ( ..a cfg quot: ( ..a cfg -- ..b ) -- ..b ) [ dup cfg ] dip with-variable ; inline diff --git a/basis/compiler/cfg/copy-prop/copy-prop.factor b/basis/compiler/cfg/copy-prop/copy-prop.factor index c0024f0752..795028806a 100644 --- a/basis/compiler/cfg/copy-prop/copy-prop.factor +++ b/basis/compiler/cfg/copy-prop/copy-prop.factor @@ -123,4 +123,4 @@ USE: compiler.cfg needs-predecessors dup collect-copies dup rename-copies - predecessors-changed drop ; + predecessors-changed ; diff --git a/basis/compiler/cfg/gc-checks/gc-checks.factor b/basis/compiler/cfg/gc-checks/gc-checks.factor index 87506e9377..a73f94a235 100644 --- a/basis/compiler/cfg/gc-checks/gc-checks.factor +++ b/basis/compiler/cfg/gc-checks/gc-checks.factor @@ -131,5 +131,5 @@ PRIVATE> dup blocks-with-gc [ [ needs-predecessors ] dip [ process-block ] each - cfg-changed + dup cfg-changed ] unless-empty ; diff --git a/basis/compiler/cfg/linear-scan/resolve/resolve.factor b/basis/compiler/cfg/linear-scan/resolve/resolve.factor index 3fff763c61..a925b0d080 100644 --- a/basis/compiler/cfg/linear-scan/resolve/resolve.factor +++ b/basis/compiler/cfg/linear-scan/resolve/resolve.factor @@ -95,7 +95,7 @@ SYMBOL: temp-locations : perform-mappings ( bb to mappings -- ) dup empty? [ 3drop ] [ mapping-instructions insert-basic-block - cfg get cfg-changed drop + cfg get cfg-changed ] if ; : resolve-edge-data-flow ( bb to -- ) diff --git a/basis/compiler/cfg/ssa/cssa/cssa.factor b/basis/compiler/cfg/ssa/cssa/cssa.factor index 6c2d6587b9..68b2939886 100644 --- a/basis/compiler/cfg/ssa/cssa/cssa.factor +++ b/basis/compiler/cfg/ssa/cssa/cssa.factor @@ -74,4 +74,4 @@ SYMBOLS: edge-copies phi-copies ; dup [ convert-phis ] each-basic-block - cfg-changed drop ; + cfg-changed ; diff --git a/basis/compiler/cfg/stacks/finalize/finalize.factor b/basis/compiler/cfg/stacks/finalize/finalize.factor index 25759781bd..cba8c8e0f7 100644 --- a/basis/compiler/cfg/stacks/finalize/finalize.factor +++ b/basis/compiler/cfg/stacks/finalize/finalize.factor @@ -56,4 +56,4 @@ ERROR: bad-peek dst loc ; dup [ visit-block ] each-basic-block - cfg-changed ; + dup cfg-changed ; diff --git a/basis/compiler/cfg/tco/tco.factor b/basis/compiler/cfg/tco/tco.factor index 06bdab7889..c2117f9317 100644 --- a/basis/compiler/cfg/tco/tco.factor +++ b/basis/compiler/cfg/tco/tco.factor @@ -72,6 +72,6 @@ IN: compiler.cfg.tco ] [ drop ] if ; : optimize-tail-calls ( cfg -- ) - dup [ optimize-tail-call ] each-basic-block - - cfg-changed predecessors-changed drop ; + [ [ optimize-tail-call ] each-basic-block ] + [ cfg-changed ] + [ predecessors-changed ] tri ; diff --git a/basis/compiler/cfg/useless-conditionals/useless-conditionals.factor b/basis/compiler/cfg/useless-conditionals/useless-conditionals.factor index 126f4892dd..d2f7c1aa2f 100644 --- a/basis/compiler/cfg/useless-conditionals/useless-conditionals.factor +++ b/basis/compiler/cfg/useless-conditionals/useless-conditionals.factor @@ -26,8 +26,9 @@ IN: compiler.cfg.useless-conditionals instructions>> [ pop* ] [ [ ##branch new-insn ] dip push ] bi ; : delete-useless-conditionals ( cfg -- ) - dup [ - dup delete-conditional? [ delete-conditional ] [ drop ] if - ] each-basic-block - - cfg-changed predecessors-changed drop ; + [ + [ + dup delete-conditional? [ delete-conditional ] [ drop ] if + ] each-basic-block + ] + [ cfg-changed ] [ predecessors-changed ] tri ; diff --git a/basis/compiler/cfg/value-numbering/value-numbering.factor b/basis/compiler/cfg/value-numbering/value-numbering.factor index 38296c5601..920542beda 100644 --- a/basis/compiler/cfg/value-numbering/value-numbering.factor +++ b/basis/compiler/cfg/value-numbering/value-numbering.factor @@ -53,5 +53,6 @@ M: array process-instruction [ process-instruction ] map flatten ; : value-numbering ( cfg -- ) - dup [ value-numbering-step ] simple-optimization - cfg-changed predecessors-changed drop ; + [ [ value-numbering-step ] simple-optimization ] + [ cfg-changed ] + [ predecessors-changed ] tri ; diff --git a/extra/compiler/cfg/gvn/gvn.factor b/extra/compiler/cfg/gvn/gvn.factor index 0486058d37..c172aa644c 100644 --- a/extra/compiler/cfg/gvn/gvn.factor +++ b/extra/compiler/cfg/gvn/gvn.factor @@ -121,5 +121,4 @@ M: insn gcse needs-predecessors dup determine-value-numbers dup eliminate-common-subexpressions - - cfg-changed predecessors-changed ; + [ cfg-changed ] [ predecessors-changed ] bi ;