- type SlotEnv = BlockEnv SubAreaSet
- liveSlotAnal :: LGraph Middle Last -> FuelMonad SlotEnv
- liveSlotTransfers :: BackwardTransfers Middle Last SubAreaSet
- removeLiveSlotDefs :: (DefinerOfSlots s, UserOfSlots s) => SubAreaSet -> s -> SubAreaSet
- layout :: ProcPointSet -> SlotEnv -> ByteOff -> LGraph Middle Last -> AreaMap
- manifestSP :: AreaMap -> ByteOff -> LGraph Middle Last -> FuelMonad (LGraph Middle Last)
- igraph :: Ord x => IGraphBuilder x -> SlotEnv -> LGraph Middle Last -> IGraph x
- areaBuilder :: IGraphBuilder Area
- stubSlotsOnDeath :: LGraph Middle Last -> FuelMonad (LGraph Middle Last)
Documentation
type SlotEnv = BlockEnv SubAreaSetSource
removeLiveSlotDefs :: (DefinerOfSlots s, UserOfSlots s) => SubAreaSet -> s -> SubAreaSetSource
layout :: ProcPointSet -> SlotEnv -> ByteOff -> LGraph Middle Last -> AreaMapSource
Greedy stack layout. Compute liveness, build the interference graph, and allocate slots for the areas. We visit each basic block in a (generally) forward order.
areaBuilder :: IGraphBuilder AreaSource