NCG: Remember to keep the entry block first when erasing liveness info
[ghc-hetmet.git] / compiler / nativeGen / RegAlloc / Graph / Main.hs
index 5fa771c..093c211 100644 (file)
@@ -178,6 +178,7 @@ regAlloc_spin
                        { raGraph               = graph
                        , raGraphColored        = graph_colored_lint
                        , raCoalesced           = rmCoalesce
+                       , raCodeCoalesced       = code_coalesced
                        , raPatched             = code_patched
                        , raSpillClean          = code_spillclean
                        , raFinal               = code_final
@@ -210,8 +211,8 @@ regAlloc_spin
                        <- regSpill code_coalesced slotsFree rsSpill
 
                -- recalculate liveness
-               let code_nat    = map stripLive code_spilled
-               code_relive     <- mapM regLiveness code_nat
+--             let code_nat    = map stripLive code_spilled
+               code_relive     <- mapM regLiveness code_spilled
 
                -- record what happened in this stage for debugging
                let stat        =
@@ -380,25 +381,13 @@ seqNode node
        `seq` (seqVirtualRegList (uniqSetToList (Color.nodeCoalesce node)))
 
 seqVirtualReg :: VirtualReg -> ()
-seqVirtualReg reg
- = case reg of
-       VirtualRegI _   -> ()
-       VirtualRegHi _  -> ()
-       VirtualRegF _   -> ()
-       VirtualRegD _   -> ()
+seqVirtualReg reg = reg `seq` ()
 
 seqRealReg :: RealReg -> ()
-seqRealReg reg
- = case reg of
-       RealRegSingle _ -> ()
-       RealRegPair _ _ -> ()
+seqRealReg reg = reg `seq` ()
 
 seqRegClass :: RegClass -> ()
-seqRegClass c
- = case c of
-       RcInteger       -> ()
-       RcFloat         -> ()
-       RcDouble        -> ()
+seqRegClass c = c `seq` ()
 
 seqMaybeRealReg :: Maybe RealReg -> ()
 seqMaybeRealReg mr