From 76cb665a8db19c62d402f0d007503437d95e4043 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Lindqvist?= Date: Wed, 10 Dec 2014 17:49:52 +0100 Subject: [PATCH] compiler.cfg.dominance: change needs-dominance effect from ( cfg -- cfg') to ( cfg -- ) --- .../compiler/cfg/dominance/dominance-tests.factor | 2 +- basis/compiler/cfg/dominance/dominance.factor | 5 +++-- .../cfg/ssa/construction/tdmsc/tdmsc.factor | 14 +++++++------- .../cfg/ssa/destruction/destruction.factor | 3 +-- .../interference/live-ranges/live-ranges.factor | 5 ++--- 5 files changed, 14 insertions(+), 15 deletions(-) diff --git a/basis/compiler/cfg/dominance/dominance-tests.factor b/basis/compiler/cfg/dominance/dominance-tests.factor index 9e7d827172..fe1e806463 100644 --- a/basis/compiler/cfg/dominance/dominance-tests.factor +++ b/basis/compiler/cfg/dominance/dominance-tests.factor @@ -4,7 +4,7 @@ compiler.cfg.predecessors compiler.cfg.utilities ; IN: compiler.cfg.dominance.tests : test-dominance ( -- ) - 0 get block>cfg needs-dominance drop ; + 0 get block>cfg needs-dominance ; ! Example with no back edges V{ } 0 test-bb diff --git a/basis/compiler/cfg/dominance/dominance.factor b/basis/compiler/cfg/dominance/dominance.factor index 7a4f83ad2d..8d8b868f3d 100644 --- a/basis/compiler/cfg/dominance/dominance.factor +++ b/basis/compiler/cfg/dominance/dominance.factor @@ -78,9 +78,10 @@ PRIVATE> PRIVATE> -: needs-dominance ( cfg -- cfg' ) +: needs-dominance ( cfg -- ) needs-predecessors - dup dominance-valid?>> [ compute-dominance t >>dominance-valid? ] unless ; + dup dominance-valid?>> [ compute-dominance t >>dominance-valid? ] unless + drop ; : dominates? ( bb1 bb2 -- ? ) swap [ pre-of ] [ [ pre-of ] [ maxpre-of ] bi ] bi* between? ; diff --git a/basis/compiler/cfg/ssa/construction/tdmsc/tdmsc.factor b/basis/compiler/cfg/ssa/construction/tdmsc/tdmsc.factor index a042ccac4a..5b9d5a9f9c 100644 --- a/basis/compiler/cfg/ssa/construction/tdmsc/tdmsc.factor +++ b/basis/compiler/cfg/ssa/construction/tdmsc/tdmsc.factor @@ -2,7 +2,7 @@ ! See http://factorcode.org/license.txt for BSD license. USING: accessors arrays assocs bit-arrays bit-sets fry hashtables hints kernel locals math namespaces sequences sets -compiler.cfg compiler.cfg.dominance compiler.cfg.rpo ; +combinators compiler.cfg compiler.cfg.dominance compiler.cfg.rpo ; FROM: namespaces => set ; FROM: assocs => change-at ; IN: compiler.cfg.ssa.construction.tdmsc @@ -81,12 +81,12 @@ SYMBOLS: merge-sets levels again? ; PRIVATE> : compute-merge-sets ( cfg -- ) - needs-dominance - - [ compute-levels ] - [ init-merge-sets ] - [ compute-merge-set-loop ] - tri ; + { + [ needs-dominance ] + [ compute-levels ] + [ init-merge-sets ] + [ compute-merge-set-loop ] + } cleave ; : merge-set ( bbs -- bbs' ) (merge-set) [ members ] dip nths ; diff --git a/basis/compiler/cfg/ssa/destruction/destruction.factor b/basis/compiler/cfg/ssa/destruction/destruction.factor index 07c551552b..c2ae09e8c9 100644 --- a/basis/compiler/cfg/ssa/destruction/destruction.factor +++ b/basis/compiler/cfg/ssa/destruction/destruction.factor @@ -154,8 +154,7 @@ M: insn cleanup-insn , ; PRIVATE> : destruct-ssa ( cfg -- cfg' ) - needs-dominance - + dup needs-dominance dup construct-cssa dup compute-defs dup compute-insns diff --git a/basis/compiler/cfg/ssa/interference/live-ranges/live-ranges.factor b/basis/compiler/cfg/ssa/interference/live-ranges/live-ranges.factor index 99e4bd7612..01f3467b0e 100644 --- a/basis/compiler/cfg/ssa/interference/live-ranges/live-ranges.factor +++ b/basis/compiler/cfg/ssa/interference/live-ranges/live-ranges.factor @@ -54,11 +54,10 @@ SYMBOLS: def-indices kill-indices ; PRIVATE> : compute-live-ranges ( cfg -- ) - needs-dominance - H{ } clone def-indices set H{ } clone kill-indices set - [ compute-local-live-ranges ] simple-analysis ; + [ needs-dominance ] + [ [ compute-local-live-ranges ] simple-analysis ] bi ; : def-index ( vreg bb -- n ) def-indices get at at ;