X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fmain%2FDynFlags.hs;h=cbed799457318139257a2086d2500bf5c0156eda;hb=f83010b119096699d1efef2f7bb45460719c48f9;hp=59391ef12e4d85b07f98f40c3e81fceab1263a5e;hpb=c5c5f430c9c5538bb2326ead92e5141448ed3c2a;p=ghc-hetmet.git diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs index 59391ef..cbed799 100644 --- a/compiler/main/DynFlags.hs +++ b/compiler/main/DynFlags.hs @@ -176,8 +176,6 @@ data DynFlag | Opt_ImplicitPrelude | Opt_ScopedTypeVariables | Opt_UnboxedTuples - | Opt_ExpressionSignaturesUnboxedTuples - | Opt_TypeSynonymUnboxedTuples | Opt_BangPatterns | Opt_TypeFamilies | Opt_OverloadedStrings @@ -652,6 +650,16 @@ minusWallOpts Opt_WarnOrphans ] +-- minuswRemovesOpts should be every warning option +minuswRemovesOpts + = minusWallOpts ++ + [Opt_WarnImplicitPrelude, + Opt_WarnIncompletePatternsRecUpd, + Opt_WarnSimplePatterns, + Opt_WarnMonomorphism, + Opt_WarnTabs + ] + -- ----------------------------------------------------------------------------- -- CoreToDo: abstraction of core-to-core passes to run. @@ -678,6 +686,7 @@ data CoreToDo -- These are diff core-to-core passes, | CoreCSE | CoreDoRuleCheck Int{-CompilerPhase-} String -- Check for non-application of rules -- matching this string + | CoreDoVectorisation | CoreDoNothing -- Useful when building up | CoreDoPasses [CoreToDo] -- lists of these things @@ -713,6 +722,7 @@ getCoreToDo dflags spec_constr = dopt Opt_SpecConstr dflags liberate_case = dopt Opt_LiberateCase dflags rule_check = ruleCheck dflags + vectorisation = dopt Opt_Vectorise dflags core_todo = if opt_level == 0 then @@ -740,6 +750,15 @@ getCoreToDo dflags MaxSimplifierIterations max_iter ], + + -- We run vectorisation here for now, but we might also try to run + -- it later + runWhen vectorisation (CoreDoPasses [ + CoreDoVectorisation, + CoreDoSimplify SimplGently + [NoCaseOfCase, + MaxSimplifierIterations max_iter]]), + -- Specialisation is best done before full laziness -- so that overloaded functions have all their dictionary lambdas manifest CoreDoSpecialising, @@ -1026,7 +1045,7 @@ dynamic_flags = [ , ( "Werror" , NoArg (setDynFlag Opt_WarnIsError) ) , ( "Wall" , NoArg (mapM_ setDynFlag minusWallOpts) ) , ( "Wnot" , NoArg (mapM_ unSetDynFlag minusWallOpts) ) /* DEPREC */ - , ( "w" , NoArg (mapM_ unSetDynFlag minusWallOpts) ) + , ( "w" , NoArg (mapM_ unSetDynFlag minuswRemovesOpts) ) ------ Optimisation flags ------------------------------------------ , ( "O" , NoArg (upd (setOptLevel 1))) @@ -1073,6 +1092,7 @@ dynamic_flags = [ -- these -f flags can all be reversed with -fno- fFlags = [ + ( "warn-dodgy-imports", Opt_WarnDodgyImports ), ( "warn-duplicate-exports", Opt_WarnDuplicateExports ), ( "warn-hi-shadowing", Opt_WarnHiShadows ), ( "warn-implicit-prelude", Opt_WarnImplicitPrelude ), @@ -1166,8 +1186,6 @@ xFlags = [ ( "ImplicitParams", Opt_ImplicitParams ), ( "ScopedTypeVariables", Opt_ScopedTypeVariables ), ( "UnboxedTuples", Opt_UnboxedTuples ), - ( "ExpressionSignaturesUnboxedTuples", Opt_ExpressionSignaturesUnboxedTuples ), - ( "TypeSynonymUnboxedTuples", Opt_TypeSynonymUnboxedTuples ), ( "StandaloneDeriving", Opt_StandaloneDeriving ), ( "DeriveDataTypeable", Opt_DeriveDataTypeable ), ( "TypeSynonymInstances", Opt_TypeSynonymInstances ), @@ -1195,8 +1213,6 @@ glasgowExtsFlags = [ , Opt_ImplicitParams , Opt_ScopedTypeVariables , Opt_UnboxedTuples - , Opt_ExpressionSignaturesUnboxedTuples - , Opt_TypeSynonymUnboxedTuples , Opt_TypeSynonymInstances , Opt_StandaloneDeriving , Opt_DeriveDataTypeable