CmmBuildInfoTables

ghc-7.0.4: The GHC API

CmmBuildInfoTables

# Documentation

type CAFSet = Map CLabel ()

type CAFEnv = BlockEnv CAFSet

data CmmTopForInfoTables

Constructors

NoInfoTable CmmTopZ |
ProcInfoTable CmmTopZ BlockSet |
FloatingInfoTable CmmInfo BlockId UpdFrameOffset |

Instances

Outputable CmmTopForInfoTables |

cafAnal :: LGraph Middle Last -> FuelMonad CAFEnv

localCAFInfo :: CAFEnv -> CmmTopZ -> Maybe (CLabel, CAFSet)

mkTopCAFInfo :: [(CLabel, CAFSet)] -> Map CLabel CAFSet

setInfoTableSRT :: Map CLabel CAFSet -> TopSRT -> (CAFSet, CmmTopForInfoTables) -> FuelMonad (TopSRT, [CmmTopForInfoTables])

setInfoTableStackMap :: SlotEnv -> AreaMap -> CmmTopForInfoTables -> CmmTopForInfoTables

data TopSRT

Instances

Outputable TopSRT |

emptySRT :: MonadUnique m => m TopSRT

srtToData :: TopSRT -> CmmZ

bundleCAFs :: CAFEnv -> CmmTopForInfoTables -> (CAFSet, CmmTopForInfoTables)

finishInfoTables :: CmmTopForInfoTables -> IO [CmmTopZ]

lowerSafeForeignCalls :: [[CmmTopForInfoTables]] -> CmmTopZ -> FuelMonad [[CmmTopForInfoTables]]

cafTransfers :: BackwardTransfers Middle Last CAFSet

liveSlotTransfers :: BackwardTransfers Middle Last SubAreaSet

extendEnvWithSafeForeignCalls :: BackwardTransfers Middle Last a -> BlockEnv a -> CmmGraph -> BlockEnv a

extendEnvsForSafeForeignCalls :: CAFEnv -> SlotEnv -> CmmGraph -> (CAFEnv, SlotEnv)