Remove warning flags from individual compiler modules
[ghc-hetmet.git] / compiler / cmm / CmmZipUtil.hs
1
2 module CmmZipUtil
3   ( zipPreds
4   )
5 where
6 import Prelude hiding (last, unzip)
7 import ZipCfg
8 import Maybes
9
10 -- | Compute the predecessors of each *reachable* block
11 zipPreds :: LastNode l => LGraph m l -> BlockEnv BlockSet
12 zipPreds g = foldl add emptyBlockEnv (postorder_dfs g)
13     where add env block@(Block id _) =
14             foldl (\env sid ->
15                        let preds = lookupBlockEnv env sid `orElse` emptyBlockSet
16                        in  extendBlockEnv env sid (extendBlockSet preds id))
17             env (succs block)