- (stats1, binds1) <- doCorePass dflags rb us1 binds to_do
-
- doCorePasses dflags rb (stats `plusSimplCount` stats1) us2 binds1 to_dos
-
-doCorePass dfs rb us binds (CoreDoSimplify mode switches)
- = _scc_ "Simplify" simplifyPgm dfs rb mode switches us binds
-doCorePass dfs rb us binds CoreCSE
- = _scc_ "CommonSubExpr" noStats dfs (cseProgram dfs binds)
-doCorePass dfs rb us binds CoreLiberateCase
- = _scc_ "LiberateCase" noStats dfs (liberateCase dfs binds)
-doCorePass dfs rb us binds CoreDoFloatInwards
- = _scc_ "FloatInwards" noStats dfs (floatInwards dfs binds)
-doCorePass dfs rb us binds (CoreDoFloatOutwards f)
- = _scc_ "FloatOutwards" noStats dfs (floatOutwards dfs f us binds)
-doCorePass dfs rb us binds CoreDoStaticArgs
- = _scc_ "StaticArgs" noStats dfs (doStaticArgs us binds)
-doCorePass dfs rb us binds CoreDoStrictness
- = _scc_ "Stranal" noStats dfs (do { binds1 <- saBinds dfs binds ;
- dmdAnalPgm dfs binds1 })
-doCorePass dfs rb us binds CoreDoWorkerWrapper
- = _scc_ "WorkWrap" noStats dfs (wwTopBinds dfs us binds)
-doCorePass dfs rb us binds CoreDoSpecialising
- = _scc_ "Specialise" noStats dfs (specProgram dfs us binds)
-doCorePass dfs rb us binds CoreDoSpecConstr
- = _scc_ "SpecConstr" noStats dfs (specConstrProgram dfs us binds)
-doCorePass dfs rb us binds CoreDoCPResult
- = _scc_ "CPResult" noStats dfs (cprAnalyse dfs binds)
-doCorePass dfs rb us binds CoreDoPrintCore
- = _scc_ "PrintCore" noStats dfs (printCore binds)
-doCorePass dfs rb us binds CoreDoUSPInf
- = _scc_ "CoreUsageSPInf" noStats dfs (doUsageSPInf dfs us binds)
-doCorePass dfs rb us binds CoreDoGlomBinds
- = noStats dfs (glomBinds dfs binds)
-doCorePass dfs rb us binds (CoreDoRuleCheck phase pat)
- = noStats dfs (ruleCheck dfs phase pat binds)
-doCorePass dfs rb us binds CoreDoNothing
- = noStats dfs (return binds)
-
-printCore binds = do dumpIfSet True "Print Core"
- (pprCoreBindings binds)
- return binds
-
-ruleCheck dflags phase pat binds = do showPass dflags "RuleCheck"
- printDump (ruleCheckProgram phase pat binds)
- return binds