ghc-6.12.3: The GHC APISource codeContentsIndex
RegAlloc.Graph.SpillCost
Synopsis
type SpillCostRecord = (VirtualReg, Int, Int, Int)
plusSpillCostRecord :: SpillCostRecord -> SpillCostRecord -> SpillCostRecord
pprSpillCostRecord :: (VirtualReg -> RegClass) -> (Reg -> SDoc) -> Graph VirtualReg RegClass RealReg -> SpillCostRecord -> SDoc
type SpillCostInfo = UniqFM SpillCostRecord
zeroSpillCostInfo :: SpillCostInfo
plusSpillCostInfo :: SpillCostInfo -> SpillCostInfo -> SpillCostInfo
slurpSpillCostInfo :: (Outputable instr, Instruction instr) => LiveCmmTop instr -> SpillCostInfo
chooseSpill :: SpillCostInfo -> Graph VirtualReg RegClass RealReg -> VirtualReg
lifeMapFromSpillCostInfo :: SpillCostInfo -> UniqFM (VirtualReg, Int)
Documentation
type SpillCostRecord = (VirtualReg, Int, Int, Int)Source
plusSpillCostRecord :: SpillCostRecord -> SpillCostRecord -> SpillCostRecordSource
pprSpillCostRecord :: (VirtualReg -> RegClass) -> (Reg -> SDoc) -> Graph VirtualReg RegClass RealReg -> SpillCostRecord -> SDocSource
Show a spill cost record, including the degree from the graph and final calulated spill cos
type SpillCostInfo = UniqFM SpillCostRecordSource
zeroSpillCostInfo :: SpillCostInfoSource
plusSpillCostInfo :: SpillCostInfo -> SpillCostInfo -> SpillCostInfoSource
Add two spillCostInfos
slurpSpillCostInfo :: (Outputable instr, Instruction instr) => LiveCmmTop instr -> SpillCostInfoSource
Slurp out information used for determining spill costs for each vreg, the number of times it was written to, read from, and the number of instructions it was live on entry to (lifetime)
chooseSpill :: SpillCostInfo -> Graph VirtualReg RegClass RealReg -> VirtualRegSource
Choose a node to spill from this graph
lifeMapFromSpillCostInfo :: SpillCostInfo -> UniqFM (VirtualReg, Int)Source
Produced by Haddock version 2.6.1