ghc-8.0.0.20160204: The GHC API

Safe HaskellNone
LanguageHaskell2010

RegAlloc.Graph.Stats

Description

Carries interesting info for debugging / profiling of the graph coloring register allocator.

Synopsis

Documentation

data RegAllocStats statics instr Source

Holds interesting statistics from the register allocator.

Constructors

RegAllocStatsStart 

Fields

RegAllocStatsSpill 

Fields

RegAllocStatsColored 

Fields

Instances

(Outputable statics, Outputable instr) => Outputable (RegAllocStats statics instr) 

Methods

ppr :: RegAllocStats statics instr -> SDoc Source

pprPrec :: Rational -> RegAllocStats statics instr -> SDoc Source

pprStats :: [RegAllocStats statics instr] -> Graph VirtualReg RegClass RealReg -> SDoc Source

Do all the different analysis on this list of RegAllocStats

pprStatsSpills :: [RegAllocStats statics instr] -> SDoc Source

Dump a table of how many spill loads / stores were inserted for each vreg.

pprStatsLifetimes :: [RegAllocStats statics instr] -> SDoc Source

Dump a table of how long vregs tend to live for in the initial code.

pprStatsConflict :: [RegAllocStats statics instr] -> SDoc Source

Dump a table of how many conflicts vregs tend to have in the initial code.

pprStatsLifeConflict Source

Arguments

:: [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 spillreloadreg-reg moves. Lets us see how well the register allocator has done.

addSRM :: (Int, Int, Int) -> (Int, Int, Int) -> (Int, Int, Int) Source