| ||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||
Description | ||||||||||||||||||||||||||||||||||||
State monad for the linear register allocator. | ||||||||||||||||||||||||||||||||||||
Synopsis | ||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||
Documentation | ||||||||||||||||||||||||||||||||||||
data RA_State | ||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||
data RegM a | ||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||
runR :: BlockAssignment -> FreeRegs -> RegMap Loc -> StackMap -> UniqSupply -> RegM a -> (BlockAssignment, StackMap, RegAllocStats, a) | ||||||||||||||||||||||||||||||||||||
Run a computation in the RegM register allocator monad. | ||||||||||||||||||||||||||||||||||||
spillR :: Instruction instr => Reg -> Unique -> RegM (instr, Int) | ||||||||||||||||||||||||||||||||||||
loadR :: Instruction instr => Reg -> Int -> RegM instr | ||||||||||||||||||||||||||||||||||||
getFreeRegsR :: RegM FreeRegs | ||||||||||||||||||||||||||||||||||||
setFreeRegsR :: FreeRegs -> RegM () | ||||||||||||||||||||||||||||||||||||
getAssigR :: RegM (RegMap Loc) | ||||||||||||||||||||||||||||||||||||
setAssigR :: RegMap Loc -> RegM () | ||||||||||||||||||||||||||||||||||||
getBlockAssigR :: RegM BlockAssignment | ||||||||||||||||||||||||||||||||||||
setBlockAssigR :: BlockAssignment -> RegM () | ||||||||||||||||||||||||||||||||||||
setDeltaR :: Int -> RegM () | ||||||||||||||||||||||||||||||||||||
getDeltaR :: RegM Int | ||||||||||||||||||||||||||||||||||||
getUniqueR :: RegM Unique | ||||||||||||||||||||||||||||||||||||
recordSpill :: SpillReason -> RegM () | ||||||||||||||||||||||||||||||||||||
Record that a spill instruction was inserted, for profiling. | ||||||||||||||||||||||||||||||||||||
Produced by Haddock version 2.6.0 |