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

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
regSpill

:: Instruction instr |
=> [LiveCmmTop instr] | the code
-> UniqSet Int | available stack slots
-> UniqSet VirtualReg | the 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

Constructors

SpillStats |

spillStoreLoad :: UniqFM (Reg, Int, Int) |

Instances

Outputable SpillStats

accSpillSL :: (Num t1, Num t2) => (t, t1, t2) -> (t3, t1, t2) -> (t, t1, t2)
Produced by Haddock version 2.6.1