minor changes to Cmm left over from September 2007
[ghc-hetmet.git] / compiler / cmm / CmmLiveZ.hs
index 2b502d5..501d852 100644 (file)
@@ -11,13 +11,14 @@ import Cmm
 import CmmExpr
 import CmmTx
 import DFMonad
-import Maybes
 import PprCmm()
 import PprCmmZ()
-import UniqSet
-import ZipDataflow
+import ZipDataflow0
 import ZipCfgCmmRep
 
+import Maybes
+import UniqSet
+
 -----------------------------------------------------------------------------
 -- Calculating what variables are live on entry to a basic block
 -----------------------------------------------------------------------------
@@ -40,10 +41,8 @@ type BlockEntryLiveness = BlockEnv CmmLive
 -----------------------------------------------------------------------------
 cmmLivenessZ :: CmmGraph -> BlockEntryLiveness
 cmmLivenessZ g = env
-    where env = runDFA liveLattice $
-                do run_b_anal transfer g
-                   allFacts
-          transfer = BComp "liveness analysis" exit last middle first
+    where env = runDFA liveLattice $ do { run_b_anal transfer g; getAllFacts }
+          transfer     = BComp "liveness analysis" exit last middle first
           exit         = emptyUniqSet
           first live _ = live
           middle       = flip middleLiveness
@@ -57,13 +56,13 @@ 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 _ formals)           = gen formals
+        middle (CopyOut _ actuals)           = gen actuals
 
 lastLiveness :: Last -> (BlockId -> CmmLive) -> CmmLive
 lastLiveness l env = last l