Safe Haskell | None |
---|---|
Language | GHC2021 |
Synopsis
- data StgPipelineOpts = StgPipelineOpts {
- stgPipeline_phases :: ![StgToDo]
- stgPipeline_lint :: !(Maybe DiagOpts)
- stgPipeline_pprOpts :: !StgPprOpts
- stgPlatform :: !Platform
- stgPipeline_forBytecode :: !Bool
- stgPipeline_allowTopLevelConApp :: Module -> DataCon -> [StgArg] -> Bool
- data StgToDo
- stg2stg :: Logger -> [Var] -> StgPipelineOpts -> Module -> [StgTopBinding] -> IO ([(CgStgTopBinding, IdSet)], StgCgInfos)
- type StgCgInfos = NameEnv TagSig
Documentation
data StgPipelineOpts Source #
StgPipelineOpts | |
|
Optional Stg-to-Stg passes.
StgCSE | Common subexpression elimination |
StgLiftLams StgLiftConfig | Lambda lifting closure variables, trading stack/register allocation for heap allocation |
StgStats | |
StgUnarise | Mandatory unarise pass, desugaring unboxed tuple and sum binders |
StgBcPrep | Mandatory when compiling to bytecode |
StgDoNothing | Useful for building up |
:: Logger | |
-> [Var] | extra vars in scope from GHCi |
-> StgPipelineOpts | |
-> Module | module being compiled |
-> [StgTopBinding] | input program |
-> IO ([(CgStgTopBinding, IdSet)], StgCgInfos) |
type StgCgInfos = NameEnv TagSig Source #
Information to be exposed in interface files which is produced by the stg2stg passes.