Safe Haskell | None |
---|
- type HermitPass = PhaseInfo -> [CommandLineOption] -> ModGuts -> CoreM ModGuts
- hermitPlugin :: HermitPass -> Plugin
- data CorePass
- = FloatInwards
- | LiberateCase
- | PrintCore
- | StaticArgs
- | Strictness
- | WorkerWrapper
- | Specialising
- | SpecConstr
- | CSE
- | Vectorisation
- | Desugar
- | DesugarOpt
- | Tidy
- | Prep
- | Simplify
- | FloatOutwards
- | RuleCheck
- | Passes
- | PluginPass String
- | NoOp
- | Unknown
- getCorePass :: CoreToDo -> CorePass
- ghcPasses :: [(CorePass, CoreToDo)]
- data PhaseInfo = PhaseInfo {
- phaseNum :: Int
- phasesDone :: [CorePass]
- phasesLeft :: [CorePass]
- getPhaseFlag :: [CommandLineOption] -> Maybe (Int, [CommandLineOption])
The HERMIT Plugin
type HermitPass = PhaseInfo -> [CommandLineOption] -> ModGuts -> CoreM ModGutsSource
Given a list of CommandLineOption
s, produce the ModGuts
to ModGuts
function required to build a plugin.
hermitPlugin :: HermitPass -> PluginSource
Build a hermit plugin. This mainly handles the per-module options.
PhaseInfo | |
|
getPhaseFlag :: [CommandLineOption] -> Maybe (Int, [CommandLineOption])Source
If HERMIT user specifies the -pN flag, get the N TODO: as written will discard other flags that start with -p