The tag on a pointer (from the dynamic-tagging paper)
Moduleghc-10.0.0.20260917GHC2024
GHC.StgToCmm.Closure
Synopsis
- type DynTag
- value tagForCon
- value isSmallFamily
- value idPrimRep1
- value idPrimRepU
- value isGcPtrRep
- value addIdReps
- value addArgReps
- newtype NonVoid
- value fromNonVoid
- value nonVoidIds
- value nonVoidStgArgs
- value assertNonVoidIds
- value assertNonVoidStgArgs
- data LambdaFormInfo
- data StandardFormInfo
- value mkLFThunk
- value mkLFReEntrant
- value mkConLFInfo
- value mkSelectorLFInfo
- value mkApLFInfo
- value importedIdLFInfo
- value mkLFArgument
- value mkLFLetNoEscape
- value mkLFStringLit
- value lfDynTag
- value isLFThunk
- value isLFReEntrant
- value lfUpdatable
- data CgLoc
- data CallMethod
- value nodeMustPointToIt
- value isKnownFun
- value funTag
- value tagForArity
- value getCallMethod
- data ClosureInfo
- value mkClosureInfo
- value mkCmmInfo
- value closureLFInfo
- value closureName
- value closureInfoLabel
- value staticClosureLabel
- value closureSlowEntryLabel
- value closureLocalEntryLabel
- value closureUpdReqd
- value closureReEntrant
- value closureFunInfo
- value isToplevClosure
- value blackHoleOnEntry
- value isStaticClosure
- value mkDataConInfoTable
- value cafBlackHoleInfoTable
- value indStaticInfoTable
- value staticClosureNeedsLink
- value mkClosureInfoTableLabel
- Packageghc-10.0.0.20260917
- Exports56
- LanguageGHC2024
- LicenceBSD-3-Clause
- SourceTag.hs
Is a data type family small enough that each constructor can get its own pointer tag?
Assumes that there is at most one PrimRep of the type. This assumption holds after unarise. See Note [Post-unarisation invariants] in GHC.Stg.Unarise. See Note [VoidRep] in GHC.Types.RepType.
Assumes that Ids have one PrimRep, which holds after unarisation. See Note [Post-unarisation invariants] in GHC.Stg.Unarise.
Assumes that arguments have one PrimRep, which holds after unarisation. See Note [Post-unarisation invariants] in GHC.Stg.Unarise.
Constructors
NonVoid a
Instances3Eq, Show, Outputable
Eq a => Eq (NonVoid a)Defined in ghc-10.0.0.20260917 · GHC.StgToCmm.ClosureShow a => Show (NonVoid a)Defined in ghc-10.0.0.20260917 · GHC.StgToCmm.ClosureOutputable a => Outputable (NonVoid a)Defined in ghc-10.0.0.20260917 · GHC.StgToCmm.Closure
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 GHC.Stg.Unarise.
Used in places where some invariant ensures that all these arguments are non-void; e.g. constructor arguments. See Note [Post-unarisation invariants] in GHC.Stg.Unarise.
LambdaFormInfo
Information about an identifier, from the code generator's point of view. Every identifier is bound to a LambdaFormInfo in the environment, which gives the code generator enough info to be able to tail call or return that identifier.
Instances1Outputable
Outputable LambdaFormInfoDefined in ghc-10.0.0.20260917 · GHC.StgToCmm.Types
StandardFormInfo tells whether this thunk has one of a small number of standard forms
Instances2Eq, Outputable
Eq StandardFormInfoDefined in ghc-10.0.0.20260917 · GHC.StgToCmm.TypesOutputable StandardFormInfoDefined in ghc-10.0.0.20260917 · GHC.StgToCmm.Types
The LambdaFormInfo of an imported Id. See Note [The LFInfo of Imported Ids]
Return the tag in the low order bits of a variable bound to this LambdaForm
Used by other modules
Instances1OutputableP
OutputableP Platform CgLocDefined in ghc-10.0.0.20260917 · GHC.StgToCmm.Closure
Constructors
EnterItNo args, not a function
JumpToIt BlockId [LocalReg]ReturnItInferedReturnItSlowCallDirectEntry CLabel RepArity
Instances1Outputable
Outputable CallMethodDefined in ghc-10.0.0.20260917 · GHC.StgToCmm.Closure
ClosureInfo
Convert from ClosureInfo to CmmInfoTable.
Inspection
Labels
Predicates
InfoTables
Get the info table label for a *thunk*.