Safe Haskell | None |
---|---|
Language | Haskell98 |
- data Unfolding
- data UnfoldingGuidance
- noUnfolding :: Unfolding
- mkImplicitUnfolding :: DynFlags -> CoreExpr -> Unfolding
- mkUnfolding :: DynFlags -> UnfoldingSource -> Bool -> Bool -> CoreExpr -> Unfolding
- mkCoreUnfolding :: UnfoldingSource -> Bool -> CoreExpr -> Arity -> UnfoldingGuidance -> Unfolding
- mkTopUnfolding :: DynFlags -> Bool -> CoreExpr -> Unfolding
- mkSimpleUnfolding :: DynFlags -> CoreExpr -> Unfolding
- mkInlineUnfolding :: Maybe Arity -> CoreExpr -> Unfolding
- mkInlinableUnfolding :: DynFlags -> CoreExpr -> Unfolding
- mkWwInlineRule :: CoreExpr -> Arity -> Unfolding
- mkCompulsoryUnfolding :: CoreExpr -> Unfolding
- mkDFunUnfolding :: [Var] -> DataCon -> [CoreExpr] -> Unfolding
- interestingArg :: CoreExpr -> ArgSummary
- data ArgSummary
- couldBeSmallEnoughToInline :: DynFlags -> Int -> CoreExpr -> Bool
- inlineBoringOk :: CoreExpr -> Bool
- certainlyWillInline :: DynFlags -> Unfolding -> Bool
- smallEnoughToInline :: DynFlags -> Unfolding -> Bool
- callSiteInline :: DynFlags -> Id -> Bool -> Bool -> [ArgSummary] -> CallCtxt -> Maybe CoreExpr
- data CallCtxt
- exprIsConApp_maybe :: InScopeEnv -> CoreExpr -> Maybe (DataCon, [Type], [CoreExpr])
- exprIsLiteral_maybe :: InScopeEnv -> CoreExpr -> Maybe Literal
Documentation
Records the unfolding of an identifier, which is approximately the form the identifier would have if we substituted its definition in for the identifier. This type should be treated as abstract everywhere except in CoreUnfold
data UnfoldingGuidance Source
UnfoldingGuidance
says when unfolding should take place
noUnfolding :: Unfolding Source
There is no known Unfolding
mkImplicitUnfolding :: DynFlags -> CoreExpr -> Unfolding Source
mkUnfolding :: DynFlags -> UnfoldingSource -> Bool -> Bool -> CoreExpr -> Unfolding Source
mkCoreUnfolding :: UnfoldingSource -> Bool -> CoreExpr -> Arity -> UnfoldingGuidance -> Unfolding Source
mkSimpleUnfolding :: DynFlags -> CoreExpr -> Unfolding Source
mkInlinableUnfolding :: DynFlags -> CoreExpr -> Unfolding Source
mkWwInlineRule :: CoreExpr -> Arity -> Unfolding Source
inlineBoringOk :: CoreExpr -> Bool Source
certainlyWillInline :: DynFlags -> Unfolding -> Bool Source
smallEnoughToInline :: DynFlags -> Unfolding -> Bool Source
callSiteInline :: DynFlags -> Id -> Bool -> Bool -> [ArgSummary] -> CallCtxt -> Maybe CoreExpr Source
exprIsConApp_maybe :: InScopeEnv -> CoreExpr -> Maybe (DataCon, [Type], [CoreExpr]) Source
Returns Just (dc, [t1..tk], [x1..xn])
if the argument expression is
a *saturated* constructor application of the form dc t1..tk x1 .. xn
,
where t1..tk are the *universally-qantified* type args of dc
exprIsLiteral_maybe :: InScopeEnv -> CoreExpr -> Maybe Literal Source