From 3b78d03e2a28f518845ab836f449e1ea04db13da Mon Sep 17 00:00:00 2001 From: Daniel Ehrenberg <littledan@Macintosh-122.local> Date: Sun, 2 Aug 2009 18:05:51 -0400 Subject: [PATCH] minor SSA liveness code reorganization --- .../compiler/cfg/ssa/liveness/liveness.factor | 22 +++---------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/basis/compiler/cfg/ssa/liveness/liveness.factor b/basis/compiler/cfg/ssa/liveness/liveness.factor index 8788bc72f5..f2a195eb24 100644 --- a/basis/compiler/cfg/ssa/liveness/liveness.factor +++ b/basis/compiler/cfg/ssa/liveness/liveness.factor @@ -97,31 +97,15 @@ SYMBOL: phi-outs H{ } T_q-sets set [ next-T_q drop ] each-basic-block ; -:: compute-phi-uses ( cfg -- ) - ! Here, a phi node uses its argument in the block that it comes from. - H{ } clone :> use - cfg [| block | - block instructions>> [ - dup ##phi? - [ inputs>> [ use conjoin-at ] assoc-each ] - [ uses-vregs [ block swap use conjoin-at ] each ] - if - ] each - ] each-basic-block - use [ keys ] assoc-map uses set ; - PRIVATE> : precompute-liveness ( cfg -- ) - ! The first three of these depend only on the graph - ! structure of the CFG, and don't need to be recomputed - ! if that doesn't change + ! Maybe dominance and def-use should be called before this, separately { + [ compute-dominance ] + [ compute-def-use ] [ compute-R_q ] [ compute-T_q ] - [ compute-dominance ] - [ compute-defs ] - [ compute-phi-uses ] } cleave ; <PRIVATE