Safe Haskell  SafeInfered 

Carries interesting info for debugging / profiling of the graph coloring register allocator.
 data RegAllocStats statics instr
 = RegAllocStatsStart {
 raLiveCmm :: [LiveCmmDecl statics instr]
 raGraph :: Graph VirtualReg RegClass RealReg
 raSpillCosts :: SpillCostInfo
  RegAllocStatsSpill {
 raCode :: [LiveCmmDecl statics instr]
 raGraph :: Graph VirtualReg RegClass RealReg
 raCoalesced :: UniqFM VirtualReg
 raSpillStats :: SpillStats
 raSpillCosts :: SpillCostInfo
 raSpilled :: [LiveCmmDecl statics instr]
  RegAllocStatsColored {
 raCode :: [LiveCmmDecl statics instr]
 raGraph :: Graph VirtualReg RegClass RealReg
 raGraphColored :: Graph VirtualReg RegClass RealReg
 raCoalesced :: UniqFM VirtualReg
 raCodeCoalesced :: [LiveCmmDecl statics instr]
 raPatched :: [LiveCmmDecl statics instr]
 raSpillClean :: [LiveCmmDecl statics instr]
 raFinal :: [NatCmmDecl statics instr]
 raSRMs :: (Int, Int, Int)
 = RegAllocStatsStart {
 pprStats :: [RegAllocStats statics instr] > Graph VirtualReg RegClass RealReg > SDoc
 pprStatsSpills :: [RegAllocStats statics instr] > SDoc
 pprStatsLifetimes :: [RegAllocStats statics instr] > SDoc
 pprStatsConflict :: [RegAllocStats statics instr] > SDoc
 pprStatsLifeConflict :: [RegAllocStats statics instr] > Graph VirtualReg RegClass RealReg > SDoc
 countSRMs :: Instruction instr => LiveCmmDecl statics instr > (Int, Int, Int)
 addSRM :: (Num t2, Num t1, Num t) => (t, t1, t2) > (t, t1, t2) > (t, t1, t2)
Documentation
data RegAllocStats statics instr Source
RegAllocStatsStart  information to help choose which regs to spill 
 
RegAllocStatsSpill  code with spill instructions added 
 
RegAllocStatsColored  spill/reload/regreg moves present in this code 

(PlatformOutputable statics, PlatformOutputable instr) => PlatformOutputable (RegAllocStats statics instr) 
pprStats :: [RegAllocStats statics instr] > Graph VirtualReg RegClass RealReg > SDocSource
Do all the different analysis on this list of RegAllocStats
pprStatsSpills :: [RegAllocStats statics instr] > SDocSource
Dump a table of how many spill loads / stores were inserted for each vreg.
pprStatsLifetimes :: [RegAllocStats statics instr] > SDocSource
Dump a table of how long vregs tend to live for in the initial code.
pprStatsConflict :: [RegAllocStats statics instr] > SDocSource
Dump a table of how many conflicts vregs tend to have in the initial code.
:: [RegAllocStats statics instr]  
> Graph VirtualReg RegClass RealReg  global register conflict graph 
> SDoc 
For every vreg, dump it's how many conflicts it has and its lifetime good for making a scatter plot.
countSRMs :: Instruction instr => LiveCmmDecl statics instr > (Int, Int, Int)Source
Count spillreloadregreg moves. Lets us see how well the register allocator has done.