ghc-6.10.1: The GHC APIContentsIndex
RegAllocStats
Synopsis
data RegAllocStats
= RegAllocStatsStart {
raLiveCmm :: [LiveCmmTop]
raGraph :: Graph Reg RegClass Reg
raSpillCosts :: SpillCostInfo
}
| RegAllocStatsSpill {
raGraph :: Graph Reg RegClass Reg
raCoalesced :: UniqFM Reg
raSpillStats :: SpillStats
raSpillCosts :: SpillCostInfo
raSpilled :: [LiveCmmTop]
}
| RegAllocStatsColored {
raGraph :: Graph Reg RegClass Reg
raGraphColored :: Graph Reg RegClass Reg
raCoalesced :: UniqFM Reg
raPatched :: [LiveCmmTop]
raSpillClean :: [LiveCmmTop]
raFinal :: [NatCmmTop]
raSRMs :: (Int, Int, Int)
}
regDotColor :: Reg -> SDoc
pprStats :: [RegAllocStats] -> Graph Reg RegClass Reg -> SDoc
pprStatsSpills :: [RegAllocStats] -> SDoc
pprStatsLifetimes :: [RegAllocStats] -> SDoc
pprStatsConflict :: [RegAllocStats] -> SDoc
pprStatsLifeConflict :: [RegAllocStats] -> Graph Reg RegClass Reg -> SDoc
countSRMs :: LiveCmmTop -> (Int, Int, Int)
Documentation
data RegAllocStats
Constructors
RegAllocStatsStartinformation to help choose which regs to spill
raLiveCmm :: [LiveCmmTop]initial code, with liveness
raGraph :: Graph Reg RegClass Regthe initial, uncolored graph
raSpillCosts :: SpillCostInfo
RegAllocStatsSpillcode with spill instructions added
raGraph :: Graph Reg RegClass Regthe partially colored graph
raCoalesced :: UniqFM Regthe regs that were coaleced
raSpillStats :: SpillStatsspiller stats
raSpillCosts :: SpillCostInfonumber of instrs each reg lives for
raSpilled :: [LiveCmmTop]
RegAllocStatsColoredspill/reload/reg-reg moves present in this code
raGraph :: Graph Reg RegClass Regthe uncolored graph
raGraphColored :: Graph Reg RegClass Regthe coalesced and colored graph
raCoalesced :: UniqFM Regthe regs that were coaleced
raPatched :: [LiveCmmTop]code with vregs replaced by hregs
raSpillClean :: [LiveCmmTop]code with unneeded spill/reloads cleaned out
raFinal :: [NatCmmTop]final code
raSRMs :: (Int, Int, Int)
show/hide Instances
regDotColor :: Reg -> SDoc
pprStats :: [RegAllocStats] -> Graph Reg RegClass Reg -> SDoc
Do all the different analysis on this list of RegAllocStats
pprStatsSpills :: [RegAllocStats] -> SDoc
Dump a table of how many spill loads / stores were inserted for each vreg.
pprStatsLifetimes :: [RegAllocStats] -> SDoc
Dump a table of how long vregs tend to live for in the initial code.
pprStatsConflict :: [RegAllocStats] -> SDoc
Dump a table of how many conflicts vregs tend to have in the initial code.
pprStatsLifeConflict
:: [RegAllocStats]
-> Graph Reg RegClass Regglobal 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 :: LiveCmmTop -> (Int, Int, Int)
Count spillreloadreg-reg moves. Lets us see how well the register allocator has done.
Produced by Haddock version 2.3.0