ghc-6.12.2: The GHC APISource codeContentsIndex
RegAlloc.Graph.Spill
Synopsis
regSpill :: Instruction instr => [LiveCmmTop instr] -> UniqSet Int -> UniqSet VirtualReg -> UniqSM ([LiveCmmTop instr], UniqSet Int, SpillStats)
data SpillStats = SpillStats {
spillStoreLoad :: UniqFM (Reg, Int, Int)
}
accSpillSL :: (Num t1, Num t2) => (t, t1, t2) -> (t3, t1, t2) -> (t, t1, t2)
Documentation
regSpillSource
:: Instruction instr
=> [LiveCmmTop instr]the code
-> UniqSet Intavailable stack slots
-> UniqSet VirtualRegthe regs to spill
-> UniqSM ([LiveCmmTop instr], UniqSet Int, SpillStats)

Spill all these virtual regs to memory TODO: see if we can split some of the live ranges instead of just globally spilling the virtual reg.

TODO: On ciscy x86 and x86_64 we don't nessesarally have to add a mov instruction when making spills. If an instr is using a spilled virtual we may be able to address the spill slot directly.

data SpillStats Source
Constructors
SpillStats
spillStoreLoad :: UniqFM (Reg, Int, Int)
show/hide Instances
accSpillSL :: (Num t1, Num t2) => (t, t1, t2) -> (t3, t1, t2) -> (t, t1, t2)Source
Produced by Haddock version 2.6.1