| |||||||||||||||||
| |||||||||||||||||
Synopsis | |||||||||||||||||
| |||||||||||||||||
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.7.2 |