- -- slurp out the stats from all the spiller stages
- let spillStats = [ s | s@RegAllocStatsSpill{}
- <- concat [ c | Just c <- map cdRegAllocStats dump]]
-
- -- build a map of how many spill load/stores were inserted for each vreg
- let spillLS = foldl' (plusUFM_C Spill.accSpillLS) emptyUFM
- $ map (Spill.spillLoadStore . raSpillStats) spillStats
-
- -- print the count of load/spills as a tuple so we can read back from the file easilly
- let pprSpillLS :: (Reg, Int, Int) -> SDoc
- pprSpillLS (r, loads, stores) =
- (parens $ (hcat $ punctuate (text ", ") [doubleQuotes (ppr r), int loads, int stores]))