ghc-lib-0.1.0: The GHC API, decoupled from GHC versions

Safe HaskellNone
LanguageHaskell2010

StgCmmClosure

Synopsis

Documentation

type DynTag = Int Source #

tagForCon :: DynFlags -> DataCon -> DynTag Source #

isSmallFamily :: DynFlags -> Int -> Bool Source #

idPrimRep :: Id -> PrimRep Source #

isVoidRep :: PrimRep -> Bool #

isGcPtrRep :: PrimRep -> Bool #

addIdReps :: [NonVoid Id] -> [NonVoid (PrimRep, Id)] Source #

addArgReps :: [NonVoid StgArg] -> [NonVoid (PrimRep, StgArg)] Source #

argPrimRep :: StgArg -> PrimRep Source #

newtype NonVoid a Source #

Constructors

Instances
Eq a => Eq (NonVoid a) Source #
Instance details

Defined in StgCmmClosure

Methods

(==) :: NonVoid a -> NonVoid a -> Bool #

(/=) :: NonVoid a -> NonVoid a -> Bool #

Show a => Show (NonVoid a) Source #
Instance details

Defined in StgCmmClosure

Methods

showsPrec :: Int -> NonVoid a -> ShowS #

show :: NonVoid a -> String #

showList :: [NonVoid a] -> ShowS #

Instance details

Defined in StgCmmClosure

Methods

ppr :: NonVoid a -> SDoc #

pprPrec :: Rational -> NonVoid a -> SDoc #

fromNonVoid :: NonVoid a -> a Source #

nonVoidIds :: [Id] -> [NonVoid Id] Source #

nonVoidStgArgs :: [StgArg] -> [NonVoid StgArg] Source #

assertNonVoidIds :: [Id] -> [NonVoid Id] Source #

Used in places where some invariant ensures that all these Ids are non-void; e.g. constructor field binders in case expressions. See Note [Post-unarisation invariants] in UnariseStg.

assertNonVoidStgArgs :: [StgArg] -> [NonVoid StgArg] Source #

Used in places where some invariant ensures that all these arguments are non-void; e.g. constructor arguments. See Note [Post-unarisation invariants] in UnariseStg.

LambdaFormInfo

data LambdaFormInfo Source #

data StandardFormInfo Source #

mkLFThunk :: Type -> TopLevelFlag -> [Id] -> UpdateFlag -> LambdaFormInfo Source #

mkLFReEntrant :: TopLevelFlag -> [Id] -> [Id] -> ArgDescr -> LambdaFormInfo Source #

mkConLFInfo :: DataCon -> LambdaFormInfo Source #

mkSelectorLFInfo :: Id -> Int -> Bool -> LambdaFormInfo Source #

mkApLFInfo :: Id -> UpdateFlag -> Arity -> LambdaFormInfo Source #

mkLFImported :: Id -> LambdaFormInfo Source #

mkLFArgument :: Id -> LambdaFormInfo Source #

mkLFLetNoEscape :: LambdaFormInfo Source #

mkLFStringLit :: LambdaFormInfo Source #

lfDynTag :: DynFlags -> LambdaFormInfo -> DynTag Source #

isLFThunk :: LambdaFormInfo -> Bool Source #

isLFReEntrant :: LambdaFormInfo -> Bool Source #

lfUpdatable :: LambdaFormInfo -> Bool Source #

Used by other modules

data CgLoc Source #

Constructors

Instances
Instance details

Defined in StgCmmClosure

Methods

ppr :: CgLoc -> SDoc #

pprPrec :: Rational -> CgLoc -> SDoc #

type SelfLoopInfo = (Id, BlockId, [LocalReg]) Source #

data CallMethod Source #

Constructors

nodeMustPointToIt :: DynFlags -> LambdaFormInfo -> Bool Source #

isKnownFun :: LambdaFormInfo -> Bool Source #

funTag :: DynFlags -> ClosureInfo -> DynTag Source #

tagForArity :: DynFlags -> RepArity -> DynTag Source #

getCallMethod :: DynFlags -> Name -> Id -> LambdaFormInfo -> RepArity -> RepArity -> CgLoc -> Maybe SelfLoopInfo -> CallMethod Source #

ClosureInfo

data ClosureInfo Source #

mkClosureInfo :: DynFlags -> Bool -> Id -> LambdaFormInfo -> Int -> Int -> String -> ClosureInfo Source #

mkCmmInfo :: ClosureInfo -> Id -> CostCentreStack -> CmmInfoTable Source #

Convert from ClosureInfo to CmmInfoTable .

Inspection

closureLFInfo :: ClosureInfo -> LambdaFormInfo Source #

closureName :: ClosureInfo -> Name Source #

Labels

closureInfoLabel :: ClosureInfo -> CLabel Source #

staticClosureLabel :: ClosureInfo -> CLabel Source #

closureSlowEntryLabel :: ClosureInfo -> CLabel Source #

closureLocalEntryLabel :: DynFlags -> ClosureInfo -> CLabel Source #

Predicates

closureUpdReqd :: ClosureInfo -> Bool Source #

closureSingleEntry :: ClosureInfo -> Bool Source #

closureReEntrant :: ClosureInfo -> Bool Source #

closureFunInfo :: ClosureInfo -> Maybe (RepArity, ArgDescr) Source #

isToplevClosure :: ClosureInfo -> Bool Source #

blackHoleOnEntry :: ClosureInfo -> Bool Source #

isStaticClosure :: ClosureInfo -> Bool Source #

InfoTables

mkDataConInfoTable :: DynFlags -> DataCon -> Bool -> Int -> Int -> CmmInfoTable Source #

cafBlackHoleInfoTable :: CmmInfoTable Source #

indStaticInfoTable :: CmmInfoTable Source #

staticClosureNeedsLink :: Bool -> CmmInfoTable -> Bool Source #

AltStyle によって変換されたページ (->オリジナル) /