Safe Haskell | Ignore |
---|---|
Language | GHC2021 |
GHC.Core.Unfold
Synopsis
- data Unfolding
- data UnfoldingGuidance
- data ExprSize
- = TooBig
- | SizeIs {
- _es_size_is :: !Int
- _es_args :: !(Bag (Id, Int))
- _es_discount :: !Int
- sizeExpr :: UnfoldingOpts -> Int -> [Id] -> CoreExpr -> ExprSize
- data ArgSummary
- nonTriv :: ArgSummary -> Bool
- data CallCtxt
- 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
- updateReportPrefix :: Maybe String -> UnfoldingOpts -> UnfoldingOpts
- inlineBoringOk :: CoreExpr -> Bool
- 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
Outputable Unfolding # | |
Defined in GHC.Core.Ppr |
data UnfoldingGuidance #
UnfoldingGuidance
says when unfolding should take place
Instances
Outputable UnfoldingGuidance # | |
Defined in GHC.Core.Ppr Methods ppr :: UnfoldingGuidance -> SDoc # | |
Eq UnfoldingGuidance # | |
Defined in GHC.Core Methods (==) :: UnfoldingGuidance -> UnfoldingGuidance -> Bool # (/=) :: UnfoldingGuidance -> UnfoldingGuidance -> Bool # |
The size of a candidate expression for unfolding
Constructors
TooBig | |
SizeIs | |
Fields
|
Instances
Outputable ExprSize # | |
Defined in GHC.Core.Unfold |
data ArgSummary #
Constructors
TrivArg | |
NonTrivArg | |
ValueArg |
Instances
Outputable ArgSummary # | |
Defined in GHC.Core.Unfold Methods ppr :: ArgSummary -> SDoc # |
nonTriv :: ArgSummary -> Bool #
Constructors
BoringCtxt | |
RhsCtxt RecFlag | |
DiscArgCtxt | |
RuleArgCtxt | |
ValAppCtxt | |
CaseCtxt |
Instances
Outputable CallCtxt # | |
Defined in GHC.Core.Unfold |
data UnfoldingOpts #
Unfolding options
Constructors
UnfoldingOpts | |
Fields
|
updateUseThreshold :: Int -> UnfoldingOpts -> UnfoldingOpts #
updateFunAppDiscount :: Int -> UnfoldingOpts -> UnfoldingOpts #
updateDictDiscount :: Int -> UnfoldingOpts -> UnfoldingOpts #
updateVeryAggressive :: Bool -> UnfoldingOpts -> UnfoldingOpts #
updateCaseScaling :: Int -> UnfoldingOpts -> UnfoldingOpts #
updateCaseThreshold :: Int -> UnfoldingOpts -> UnfoldingOpts #
updateReportPrefix :: Maybe String -> UnfoldingOpts -> UnfoldingOpts #
inlineBoringOk :: CoreExpr -> Bool #
calcUnfoldingGuidance :: UnfoldingOpts -> Bool -> CoreExpr -> UnfoldingGuidance #