ghc-7.0.4: The GHC API

CmmStackLayout

Synopsis

- 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 SubAreaSet Source

liveSlotAnal :: LGraph Middle Last -> FuelMonad SlotEnv Source

liveSlotTransfers :: BackwardTransfers Middle Last SubAreaSet Source

removeLiveSlotDefs :: (DefinerOfSlots s, UserOfSlots s) => SubAreaSet -> s -> SubAreaSet Source

layout :: ProcPointSet -> SlotEnv -> ByteOff -> LGraph Middle Last -> AreaMap Source

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.

manifestSP :: AreaMap -> ByteOff -> LGraph Middle Last -> FuelMonad (LGraph Middle Last)Source

igraph :: Ord x => IGraphBuilder x -> SlotEnv -> LGraph Middle Last -> IGraph xSource

areaBuilder :: IGraphBuilder Area Source

stubSlotsOnDeath :: LGraph Middle Last -> FuelMonad (LGraph Middle Last)Source