| ghc-6.12.3: The GHC API | Contents | Index

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)
plusSpillCostRecord :: SpillCostRecord -> SpillCostRecord -> SpillCostRecord
pprSpillCostRecord :: (VirtualReg -> RegClass) -> (Reg -> SDoc) -> Graph VirtualReg RegClass RealReg -> SpillCostRecord -> SDoc
Show a spill cost record, including the degree from the graph and final calulated spill cos
type SpillCostInfo = UniqFM SpillCostRecord
zeroSpillCostInfo :: SpillCostInfo
plusSpillCostInfo :: SpillCostInfo -> SpillCostInfo -> SpillCostInfo
Add two spillCostInfos
slurpSpillCostInfo :: (Outputable instr, Instruction instr) => LiveCmmTop instr -> SpillCostInfo
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 -> VirtualReg
Choose a node to spill from this graph
lifeMapFromSpillCostInfo :: SpillCostInfo -> UniqFM (VirtualReg, Int)
Produced by Haddock version 2.6.1