ghc-9.12.0.20241128: The GHC API
Safe HaskellNone
LanguageGHC2021

GHC.Stg.Syntax

Synopsis

Documentation

data StgArg Source #

Constructors

StgVarArg Id 
StgLitArg Literal 

Instances

Instances details
Outputable StgArg Source # 
Instance details

Defined in GHC.Stg.Syntax

Methods

ppr :: StgArg -> SDoc Source #

data GenStgTopBinding (pass :: StgPass) Source #

A top-level binding.

data GenStgBinding (pass :: StgPass) Source #

Constructors

StgNonRec (BinderP pass) (GenStgRhs pass) 
StgRec [(BinderP pass, GenStgRhs pass)] 

Instances

Instances details
OutputablePass pass => Outputable (GenStgBinding pass) Source # 
Instance details

Defined in GHC.Stg.Syntax

Methods

ppr :: GenStgBinding pass -> SDoc Source #

data GenStgExpr (pass :: StgPass) Source #

Instances

Instances details
OutputablePass pass => Outputable (GenStgExpr pass) Source # 
Instance details

Defined in GHC.Stg.Syntax

Methods

ppr :: GenStgExpr pass -> SDoc Source #

data GenStgRhs (pass :: StgPass) Source #

Constructors

StgRhsClosure 

Fields

StgRhsCon CostCentreStack DataCon ConstructorNumber [StgTickish] [StgArg] Type 

Instances

Instances details
OutputablePass pass => Outputable (GenStgRhs pass) Source # 
Instance details

Defined in GHC.Stg.Syntax

Methods

ppr :: GenStgRhs pass -> SDoc Source #

data GenStgAlt (pass :: StgPass) Source #

Constructors

GenStgAlt 

Fields

data AltType Source #

Instances

Instances details
Outputable AltType Source # 
Instance details

Defined in GHC.Stg.Syntax

Methods

ppr :: AltType -> SDoc Source #

data StgPass Source #

Used as a data type index for the stgSyn AST

Constructors

Vanilla 
LiftLams

Use internally by the lambda lifting pass

InferTaggedBinders

Tag inference information on binders. See Note [Tag inference passes] in GHC.Stg.InferTags

InferTagged

Tag inference information put on relevant StgApp nodes See Note [Tag inference passes] in GHC.Stg.InferTags

CodeGen 

type family BinderP (pass :: StgPass) Source #

Instances

Instances details
type BinderP 'CodeGen Source # 
Instance details

Defined in GHC.Stg.Syntax

type BinderP 'InferTagged Source # 
Instance details

Defined in GHC.Stg.Syntax

type BinderP 'InferTaggedBinders Source # 
Instance details

Defined in GHC.Stg.Syntax

type BinderP 'LiftLams Source # 
Instance details

Defined in GHC.Stg.Syntax

type BinderP 'Vanilla Source # 
Instance details

Defined in GHC.Stg.Syntax

type family XRhsClosure (pass :: StgPass) Source #

Instances

Instances details
type XRhsClosure 'CodeGen Source #

Code gen needs to track non-global free vars

Instance details

Defined in GHC.Stg.Syntax

type XRhsClosure 'InferTagged Source # 
Instance details

Defined in GHC.Stg.Syntax

type XRhsClosure 'InferTaggedBinders Source # 
Instance details

Defined in GHC.Stg.Syntax

type XRhsClosure 'LiftLams Source # 
Instance details

Defined in GHC.Stg.Syntax

type XRhsClosure 'Vanilla Source # 
Instance details

Defined in GHC.Stg.Syntax

type family XLet (pass :: StgPass) Source #

Instances

Instances details
type XLet 'CodeGen Source # 
Instance details

Defined in GHC.Stg.Syntax

type XLet 'InferTagged Source # 
Instance details

Defined in GHC.Stg.Syntax

type XLet 'InferTaggedBinders Source # 
Instance details

Defined in GHC.Stg.Syntax

type XLet 'LiftLams Source # 
Instance details

Defined in GHC.Stg.Syntax

type XLet 'Vanilla Source # 
Instance details

Defined in GHC.Stg.Syntax

type family XLetNoEscape (pass :: StgPass) Source #

Instances

Instances details
type XLetNoEscape 'CodeGen Source # 
Instance details

Defined in GHC.Stg.Syntax

type XLetNoEscape 'InferTagged Source # 
Instance details

Defined in GHC.Stg.Syntax

type XLetNoEscape 'InferTaggedBinders Source # 
Instance details

Defined in GHC.Stg.Syntax

type XLetNoEscape 'LiftLams Source # 
Instance details

Defined in GHC.Stg.Syntax

type XLetNoEscape 'Vanilla Source # 
Instance details

Defined in GHC.Stg.Syntax

data NoExtFieldSilent Source #

Like NoExtField, but with an Outputable instance that returns empty.

Instances

Instances details
Outputable NoExtFieldSilent Source # 
Instance details

Defined in GHC.Stg.Syntax

Data NoExtFieldSilent Source # 
Instance details

Defined in GHC.Stg.Syntax

Methods

gfoldl :: (forall d b. Data d => c (d -> b) -> d -> c b) -> (forall g. g -> c g) -> NoExtFieldSilent -> c NoExtFieldSilent #

gunfold :: (forall b r. Data b => c (b -> r) -> c r) -> (forall r. r -> c r) -> Constr -> c NoExtFieldSilent #

toConstr :: NoExtFieldSilent -> Constr #

dataTypeOf :: NoExtFieldSilent -> DataType #

dataCast1 :: Typeable t => (forall d. Data d => c (t d)) -> Maybe (c NoExtFieldSilent) #

dataCast2 :: Typeable t => (forall d e. (Data d, Data e) => c (t d e)) -> Maybe (c NoExtFieldSilent) #

gmapT :: (forall b. Data b => b -> b) -> NoExtFieldSilent -> NoExtFieldSilent #

gmapQl :: (r -> r' -> r) -> r -> (forall d. Data d => d -> r') -> NoExtFieldSilent -> r #

gmapQr :: forall r r'. (r' -> r -> r) -> r -> (forall d. Data d => d -> r') -> NoExtFieldSilent -> r #

gmapQ :: (forall d. Data d => d -> u) -> NoExtFieldSilent -> [u] #

gmapQi :: Int -> (forall d. Data d => d -> u) -> NoExtFieldSilent -> u #

gmapM :: Monad m => (forall d. Data d => d -> m d) -> NoExtFieldSilent -> m NoExtFieldSilent #

gmapMp :: MonadPlus m => (forall d. Data d => d -> m d) -> NoExtFieldSilent -> m NoExtFieldSilent #

gmapMo :: MonadPlus m => (forall d. Data d => d -> m d) -> NoExtFieldSilent -> m NoExtFieldSilent #

Eq NoExtFieldSilent Source # 
Instance details

Defined in GHC.Stg.Syntax

Ord NoExtFieldSilent Source # 
Instance details

Defined in GHC.Stg.Syntax

noExtFieldSilent :: NoExtFieldSilent Source #

Used when constructing a term with an unused extension point that should not appear in pretty-printed output at all.

data UpdateFlag Source #

Constructors

ReEntrant

A ReEntrant closure may be entered multiple times, but should not be updated or blackholed.

Updatable

An Updatable closure should be updated after evaluation (and may be blackholed during evaluation).

SingleEntry

A SingleEntry closure will only be entered once, and so need not be updated but may safely be blackholed.

JumpedTo

A JumpedTo (join-point) closure is entered once or multiple times but has no heap-allocated associated closure.

Instances

Instances details
Outputable UpdateFlag Source # 
Instance details

Defined in GHC.Stg.Syntax

Methods

ppr :: UpdateFlag -> SDoc Source #

Show UpdateFlag Source # 
Instance details

Defined in GHC.Stg.Syntax

Eq UpdateFlag Source # 
Instance details

Defined in GHC.Stg.Syntax

data ConstructorNumber Source #

When `-fdistinct-constructor-tables` is turned on then each usage of a constructor is given an unique number and an info table is generated for each different constructor.

Constructors

NoNumber 
Numbered Int 

Instances

Instances details
Outputable ConstructorNumber Source # 
Instance details

Defined in GHC.Stg.Syntax

data StgOp Source #

Instances

Instances details
Outputable StgOp Source # 
Instance details

Defined in GHC.Stg.Syntax

Methods

ppr :: StgOp -> SDoc Source #

freeVarsOfRhs :: forall (pass :: StgPass). XRhsClosure pass ~ DIdSet => GenStgRhs pass -> DIdSet Source #

stgArgType :: StgArg -> Type Source #

Type of an StgArg

Very half baked because we have lost the type arguments.

This function should be avoided: in STG we aren't supposed to look at types, but only PrimReps. Use stgArgRep, stgArgRep_maybe, stgArgRep1 instaed.

stgArgRep1 :: StgArg -> PrimOrVoidRep Source #

Assumes that the argument has at most one PrimRep, which holds after unarisation. See Note [Post-unarisation invariants] in GHC.Stg.Unarise. See Note [VoidRep] in GHC.Types.RepType.

stgArgRepU :: StgArg -> PrimRep Source #

Assumes that the argument has exactly one PrimRep. See Note [VoidRep] in GHC.Types.RepType.

stgCaseBndrInScope Source #

Arguments

:: AltType 
-> Bool

unarised?

-> Bool 

Given an alt type and whether the program is unarised, return whether the case binder is in scope.

Case binders of unboxed tuple or unboxed sum type always dead after the unariser has run. See Note [Post-unarisation invariants] in GHC.Stg.Unarise.

data StgPprOpts Source #

STG pretty-printing options

Constructors

StgPprOpts 

Fields

panicStgPprOpts :: StgPprOpts Source #

STG pretty-printing options used for panic messages

shortStgPprOpts :: StgPprOpts Source #

STG pretty-printing options used for short messages

pprStgExpr :: forall (pass :: StgPass). OutputablePass pass => StgPprOpts -> GenStgExpr pass -> SDoc Source #

pprStgRhs :: forall (pass :: StgPass). OutputablePass pass => StgPprOpts -> GenStgRhs pass -> SDoc Source #

pprStgBinding :: forall (pass :: StgPass). OutputablePass pass => StgPprOpts -> GenStgBinding pass -> SDoc Source #

pprStgAlt :: forall (pass :: StgPass). OutputablePass pass => StgPprOpts -> Bool -> GenStgAlt pass -> SDoc Source #