ghc-7.7.20130829: The GHC API

Safe HaskellNone




type SpillCostRecord = (VirtualReg, Int, Int, Int)Source

Records the expected cost to spill some regster.

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 cost.

zeroSpillCostInfo :: SpillCostInfoSource

An empty map of spill costs.

slurpSpillCostInfo :: (Outputable instr, Instruction instr) => Platform -> LiveCmmDecl statics 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

Extract a map of register lifetimes from a SpillCostInfo.