From: Roman Leshchinskiy Date: Wed, 9 Jan 2008 02:37:47 +0000 (+0000) Subject: More refactoring in getCoreToDo X-Git-Url: http://git.megacz.com/?p=ghc-hetmet.git;a=commitdiff_plain;h=46379cbbbbcf9ad40fe81e0b29b8d12c8d765baa;hp=6c9db8f1bec50c4d49751f27e196578c09c4ba9e More refactoring in getCoreToDo --- diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs index 359ea39..e9681f6 100644 --- a/compiler/main/DynFlags.hs +++ b/compiler/main/DynFlags.hs @@ -774,6 +774,10 @@ runWhen :: Bool -> CoreToDo -> CoreToDo runWhen True do_this = do_this runWhen False do_this = CoreDoNothing +runMaybe :: Maybe a -> (a -> CoreToDo) -> CoreToDo +runMaybe (Just x) f = f x +runMaybe Nothing _ = CoreDoNothing + getCoreToDo :: DynFlags -> [CoreToDo] getCoreToDo dflags | Just todo <- coreToDo dflags = todo -- set explicitly by user @@ -790,8 +794,7 @@ getCoreToDo dflags rule_check = ruleCheck dflags vectorisation = dopt Opt_Vectorise dflags - maybe_rule_check phase | Just s <- rule_check = CoreDoRuleCheck phase s - | otherwise = CoreDoNothing + maybe_rule_check phase = runMaybe rule_check (CoreDoRuleCheck phase) simpl_phase phase iter = CoreDoPasses [ CoreDoSimplify (SimplPhase phase) [ @@ -842,7 +845,7 @@ getCoreToDo dflags -- We run vectorisation here for now, but we might also try to run -- it later - runWhen vectorisation (CoreDoPasses [ CoreDoVectorisation, simpl_gently]), + runWhen vectorisation (CoreDoPasses [ CoreDoVectorisation, simpl_gently ]), -- Specialisation is best done before full laziness -- so that overloaded functions have all their dictionary lambdas manifest