| Safe Haskell | None |
|---|---|
| Language | GHC2024 |
Elara.CoreToCore
Description
Entrypoint for the Core to Core stage of compilation This stage performs optimisations and transformations on the Core AST
Synopsis
- type CoreExprPass = CoreExpr -> CoreExpr
- pattern Infix :: NonEmpty Text -> Text -> CoreExpr -> CoreExpr -> CoreExpr
- constantFold :: CoreExprPass
- betaReduce :: CoreExprPass
- uselessLetInline :: CoreExprPass
- pipeInline :: CoreExprPass
- subst :: Var -> Expr Var -> Expr Var -> CoreExpr
- coreToCoreExpr :: CoreExprPass
- fullCoreToCoreExpr :: CoreExprPass
- coreToCore :: CoreModule CoreBind -> CoreModule CoreBind
- runGetOptimisedCoreModuleQuery :: ModuleName -> Eff (ConsQueryEffects '[Rock Query]) (CoreModule CoreBind)
- runGetANFCoreModuleQuery :: ModuleName -> Eff (ConsQueryEffects '[Rock Query]) (CoreModule (TopLevelBind Var))
- runGetFinalisedCoreModuleQuery :: HasCallStack => ModuleName -> Eff (ConsQueryEffects '[Rock Query]) (CoreModule CoreBind)
- moduleToANF :: forall (r :: [Effect]). ToANF r => CoreModule (Bind Var Expr) -> Eff r (CoreModule (TopLevelBind Var))
- unANF :: CoreModule (Bind Var Expr) -> CoreModule (Bind Var Expr)
Documentation
type CoreExprPass = CoreExpr -> CoreExpr Source #
betaReduce :: CoreExprPass Source #
Performs beta reduction on the Core AST to reduce redundant lambdas
runGetOptimisedCoreModuleQuery :: ModuleName -> Eff (ConsQueryEffects '[Rock Query]) (CoreModule CoreBind) Source #
runGetANFCoreModuleQuery :: ModuleName -> Eff (ConsQueryEffects '[Rock Query]) (CoreModule (TopLevelBind Var)) Source #
runGetFinalisedCoreModuleQuery :: HasCallStack => ModuleName -> Eff (ConsQueryEffects '[Rock Query]) (CoreModule CoreBind) Source #
moduleToANF :: forall (r :: [Effect]). ToANF r => CoreModule (Bind Var Expr) -> Eff r (CoreModule (TopLevelBind Var)) Source #