ghc-8.2.1.20171108: 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 #