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