X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fcmm%2FCmmLiveZ.hs;h=501d852095fb6dd8b8bec0090c30ff6f7bbd1021;hb=dcf739bd7fb7de140be3bafb4ce211e2e5c7bba9;hp=9b2fa56d5b34ed04142026666105bbe9de0215a2;hpb=e64dbac62758a2c95d0d8faea37b22287d585479;p=ghc-hetmet.git diff --git a/compiler/cmm/CmmLiveZ.hs b/compiler/cmm/CmmLiveZ.hs index 9b2fa56..501d852 100644 --- a/compiler/cmm/CmmLiveZ.hs +++ b/compiler/cmm/CmmLiveZ.hs @@ -13,7 +13,7 @@ import CmmTx import DFMonad import PprCmm() import PprCmmZ() -import ZipDataflow +import ZipDataflow0 import ZipCfgCmmRep import Maybes @@ -41,7 +41,7 @@ type BlockEntryLiveness = BlockEnv CmmLive ----------------------------------------------------------------------------- cmmLivenessZ :: CmmGraph -> BlockEntryLiveness cmmLivenessZ g = env - where env = runDFA liveLattice $ do { run_b_anal transfer g; allFacts } + where env = runDFA liveLattice $ do { run_b_anal transfer g; getAllFacts } transfer = BComp "liveness analysis" exit last middle first exit = emptyUniqSet first live _ = live @@ -56,11 +56,11 @@ kill a live = foldRegsUsed delOneFromUniqSet live a middleLiveness :: Middle -> CmmLive -> CmmLive middleLiveness m = middle m - where middle (MidNop) = id - middle (MidComment {}) = id + where middle (MidComment {}) = id middle (MidAssign lhs expr) = gen expr . kill lhs middle (MidStore addr rval) = gen addr . gen rval middle (MidUnsafeCall tgt ress args) = gen tgt . gen args . kill ress + middle (MidAddToContext ra args) = gen ra . gen args middle (CopyIn _ formals _) = kill formals middle (CopyOut _ actuals) = gen actuals