NCG: Fix dumping of graphs in regalloc stats for graph allocator
[ghc-hetmet.git] / compiler / nativeGen / RegAlloc / Graph / Coalesce.hs
index 74eb0c2..e0fad17 100644 (file)
@@ -14,6 +14,7 @@ import Reg
 
 import Cmm
 import Bag
+import Digraph
 import UniqFM
 import UniqSet
 import UniqSupply
@@ -68,13 +69,12 @@ slurpJoinMovs
 slurpJoinMovs live
        = slurpCmm emptyBag live
  where 
-       slurpCmm   rs  CmmData{}                         = rs
-       slurpCmm   rs (CmmProc _ _ _ (ListGraph blocks)) = foldl' slurpComp  rs blocks
-       slurpComp  rs (BasicBlock _ blocks)              = foldl' slurpBlock rs blocks
-        slurpBlock rs (BasicBlock _ instrs)              = foldl' slurpLI    rs instrs
+       slurpCmm   rs  CmmData{}                = rs
+       slurpCmm   rs (CmmProc _ _ _ sccs)      = foldl' slurpBlock rs (flattenSCCs sccs)
+        slurpBlock rs (BasicBlock _ instrs)    = foldl' slurpLI    rs instrs
                 
-        slurpLI    rs (Instr _ Nothing)                 = rs
-       slurpLI    rs (Instr instr (Just live))
+        slurpLI    rs (LiveInstr _     Nothing) = rs
+       slurpLI    rs (LiveInstr instr (Just live))
                | Just (r1, r2) <- takeRegRegMoveInstr instr
                , elementOfUniqSet r1 $ liveDieRead live
                , elementOfUniqSet r2 $ liveBorn live
@@ -86,8 +86,5 @@ slurpJoinMovs live
                
                | otherwise
                = rs
-       
-       slurpLI    rs SPILL{}   = rs
-       slurpLI    rs RELOAD{}  = rs