Safe Haskell | Safe-Inferred |
---|---|
Language | Haskell2010 |
Synopsis
- data Unfolding
- data UnfoldingGuidance
- data UnfoldingOpts = UnfoldingOpts {}
- defaultUnfoldingOpts :: UnfoldingOpts
- updateCreationThreshold :: Int -> UnfoldingOpts -> UnfoldingOpts
- updateUseThreshold :: Int -> UnfoldingOpts -> UnfoldingOpts
- updateFunAppDiscount :: Int -> UnfoldingOpts -> UnfoldingOpts
- updateDictDiscount :: Int -> UnfoldingOpts -> UnfoldingOpts
- updateVeryAggressive :: Bool -> UnfoldingOpts -> UnfoldingOpts
- updateCaseScaling :: Int -> UnfoldingOpts -> UnfoldingOpts
- updateCaseThreshold :: Int -> UnfoldingOpts -> UnfoldingOpts
- data ArgSummary
- couldBeSmallEnoughToInline :: UnfoldingOpts -> Int -> CoreExpr -> Bool
- inlineBoringOk :: CoreExpr -> Bool
- certainlyWillInline :: UnfoldingOpts -> IdInfo -> Maybe Unfolding
- smallEnoughToInline :: UnfoldingOpts -> Unfolding -> Bool
- callSiteInline :: Logger -> DynFlags -> Int -> Id -> Bool -> Bool -> [ArgSummary] -> CallCtxt -> Maybe CoreExpr
- data CallCtxt
- calcUnfoldingGuidance :: UnfoldingOpts -> Bool -> CoreExpr -> UnfoldingGuidance
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 GHC.Core.Unfold
Instances
data UnfoldingGuidance Source #
UnfoldingGuidance
says when unfolding should take place
Instances
Outputable UnfoldingGuidance Source # | |
Defined in GHC.Core.Ppr ppr :: UnfoldingGuidance -> SDoc Source # | |
Eq UnfoldingGuidance Source # | |
Defined in GHC.Core (==) :: UnfoldingGuidance -> UnfoldingGuidance -> Bool # (/=) :: UnfoldingGuidance -> UnfoldingGuidance -> Bool # |
data UnfoldingOpts Source #
Unfolding options
UnfoldingOpts | |
|
updateUseThreshold :: Int -> UnfoldingOpts -> UnfoldingOpts Source #
updateFunAppDiscount :: Int -> UnfoldingOpts -> UnfoldingOpts Source #
updateDictDiscount :: Int -> UnfoldingOpts -> UnfoldingOpts Source #
updateCaseScaling :: Int -> UnfoldingOpts -> UnfoldingOpts Source #
updateCaseThreshold :: Int -> UnfoldingOpts -> UnfoldingOpts Source #
data ArgSummary Source #
Instances
Outputable ArgSummary Source # | |
Defined in GHC.Core.Unfold ppr :: ArgSummary -> SDoc Source # |
couldBeSmallEnoughToInline :: UnfoldingOpts -> Int -> CoreExpr -> Bool Source #
inlineBoringOk :: CoreExpr -> Bool Source #
certainlyWillInline :: UnfoldingOpts -> IdInfo -> Maybe Unfolding Source #
Sees if the unfolding is pretty certain to inline. If so, return a *stable* unfolding for it, that will always inline.
smallEnoughToInline :: UnfoldingOpts -> Unfolding -> Bool Source #
callSiteInline :: Logger -> DynFlags -> Int -> Id -> Bool -> Bool -> [ArgSummary] -> CallCtxt -> Maybe CoreExpr Source #
Instances
calcUnfoldingGuidance :: UnfoldingOpts -> Bool -> CoreExpr -> UnfoldingGuidance Source #