Handle DOA vregs when building spill stats
authorBen.Lippmeier@anu.edu.au <unknown>
Thu, 23 Aug 2007 12:10:09 +0000 (12:10 +0000)
committerBen.Lippmeier@anu.edu.au <unknown>
Thu, 23 Aug 2007 12:10:09 +0000 (12:10 +0000)
compiler/nativeGen/RegAllocStats.hs

index 015453e..798af02 100644 (file)
@@ -176,8 +176,10 @@ pprStatsLifeConflict stats graph
  = let lifeMap = foldl' plusUFM emptyUFM
                        [ raLifetimes s | s@RegAllocStatsStart{} <- stats ]
 
  = let lifeMap = foldl' plusUFM emptyUFM
                        [ raLifetimes s | s@RegAllocStatsStart{} <- stats ]
 
-       scatter = map   (\r ->  let Just (_, lifetime)  = lookupUFM lifeMap r
-                                   Just node           = Color.lookupNode graph r
+       scatter = map   (\r ->  let lifetime    = case lookupUFM lifeMap r of
+                                                       Just (_, l)     -> l
+                                                       Nothing         -> 0
+                                   Just node   = Color.lookupNode graph r
                                in parens $ hcat $ punctuate (text ", ")
                                        [ doubleQuotes $ ppr $ Color.nodeId node
                                        , ppr $ sizeUniqSet (Color.nodeConflicts node)
                                in parens $ hcat $ punctuate (text ", ")
                                        [ doubleQuotes $ ppr $ Color.nodeId node
                                        , ppr $ sizeUniqSet (Color.nodeConflicts node)