| Safe Haskell | Ignore |
|---|---|
| Language | Haskell2010 |
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
data UnfoldingGuidance Source #
UnfoldingGuidance says when unfolding should take place
Instances
| Outputable UnfoldingGuidance Source # | |
Defined in GHC.Core.Ppr Methods ppr :: UnfoldingGuidance -> SDoc Source # | |
| Eq UnfoldingGuidance Source # | |
Defined in GHC.Core Methods (==) :: UnfoldingGuidance -> UnfoldingGuidance -> Bool # (/=) :: UnfoldingGuidance -> UnfoldingGuidance -> Bool # | |
The size of a candidate expression for unfolding
Constructors
| TooBig | |
| SizeIs | |
Fields
| |
Instances
data ArgSummary Source #
Constructors
| TrivArg | |
| NonTrivArg | |
| ValueArg |
Instances
| Outputable ArgSummary Source # | |
Defined in GHC.Core.Unfold Methods ppr :: ArgSummary -> SDoc Source # | |
nonTriv :: ArgSummary -> Bool Source #
Constructors
| BoringCtxt | |
| RhsCtxt RecFlag | |
| DiscArgCtxt | |
| RuleArgCtxt | |
| ValAppCtxt | |
| CaseCtxt |
Instances
data UnfoldingOpts Source #
Unfolding options
Constructors
| UnfoldingOpts | |
Fields
| |
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 #
inlineBoringOk :: CoreExpr -> Bool Source #
calcUnfoldingGuidance :: UnfoldingOpts -> Bool -> CoreExpr -> UnfoldingGuidance Source #