| Safe Haskell | None |
|---|---|
| Language | GHC2021 |
GHC.Stg.EnforceEpt.TagSig
Synopsis
- type StgCgInfos = NameEnv TagSig
- data TagSig
- data TagInfo
- = TagDunno
- | TagTuple [TagInfo]
- | TagEPT
- | TagBottoming
- isTaggedSig :: TagSig -> Bool
- isTaggedInfo :: TagInfo -> Bool
- seqTagSig :: TagSig -> ()
- seqTagInfo :: TagInfo -> ()
Documentation
type StgCgInfos = NameEnv TagSig Source #
Information to be exposed in interface files which is produced by the stg2stg passes.
The signature attached to a binding.
Constructors
| TagVal TagInfo | A value binding (thunk, constructor, etc.) |
| TagFun TagInfo | A function/join-point binding; carries the TagInfo of saturated-call return values. See Note [TagInfo of functions]. |
Instances
| Binary TagSig Source # | |
| Outputable TagSig Source # | |
| Eq TagSig Source # | |
| OutputableBndr (Id, TagSig) Source # | |
Defined in GHC.Stg.EnforceEpt.TagSig Methods pprBndr :: BindingSite -> (Id, TagSig) -> SDoc Source # pprPrefixOcc :: (Id, TagSig) -> SDoc Source # pprInfixOcc :: (Id, TagSig) -> SDoc Source # bndrIsJoin_maybe :: (Id, TagSig) -> JoinPointHood Source # | |
What we know about a runtime value.
Constructors
| TagDunno | We don't know anything about the tag. |
| TagTuple [TagInfo] | An unboxed tuple with taginfo for each element. |
| TagEPT | An evaluated and properly tagged value. See Note [Evaluated and Properly Tagged]. |
| TagBottoming | Bottom of the domain. See Note [Bottom functions are TagBottoming] in GHC.Stg.EnforceEpt. |
isTaggedSig :: TagSig -> Bool Source #
Is the given binding known to be properly tagged (or irrelevant, as for unboxed values and bottoming computations)?
isTaggedInfo :: TagInfo -> Bool Source #
Is the given value-level tag known to be properly tagged? NB: unboxed tuples are *not* treated as tagged here; they are handled specially by the rewriter (which considers them already evaluated).
seqTagInfo :: TagInfo -> () Source #