X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=ghc%2Fcompiler%2Fmain%2FCmdLineOpts.lhs;h=e66aea88f231e59f286606096439cfbc03b4117b;hb=44f0f21f7e788f76bb766bab6560f5e8d09826ef;hp=3e6d0bf815952e9032c2719105b224ab0d16f9c1;hpb=d5c7622a852d7fb55120706ac75ae1323ce3939f;p=ghc-hetmet.git diff --git a/ghc/compiler/main/CmdLineOpts.lhs b/ghc/compiler/main/CmdLineOpts.lhs index 3e6d0bf..e66aea8 100644 --- a/ghc/compiler/main/CmdLineOpts.lhs +++ b/ghc/compiler/main/CmdLineOpts.lhs @@ -1,4 +1,4 @@ -% + % (c) The University of Glasgow, 1996-2000 % \section[CmdLineOpts]{Things to do with command-line options} @@ -35,6 +35,11 @@ module CmdLineOpts ( dopt_HscLang, dopt_OutName, + -- sets of warning opts + standardWarnings, + minusWOpts, + minusWallOpts, + -- profiling opts opt_AutoSccsOnAllToplevs, opt_AutoSccsOnExportedToplevs, @@ -66,13 +71,10 @@ module CmdLineOpts ( opt_SimplNoPreInlining, opt_SimplDoEtaReduction, opt_SimplDoLambdaEtaExpansion, - opt_SimplCaseOfCase, opt_SimplCaseMerge, - opt_SimplPedanticBottoms, opt_SimplExcessPrecision, -- Unfolding control - opt_UF_HiFileThreshold, opt_UF_CreationThreshold, opt_UF_UseThreshold, opt_UF_FunAppDiscount, @@ -182,6 +184,7 @@ data CoreToDo -- These are diff core-to-core passes, | CoreDoStrictness | CoreDoWorkerWrapper | CoreDoSpecialising + | CoreDoSpecConstr | CoreDoUSPInf | CoreDoCPResult | CoreDoGlomBinds @@ -237,7 +240,6 @@ data DynFlag | Opt_D_dump_stranal | Opt_D_dump_tc | Opt_D_dump_types - | Opt_D_dump_tc_trace | Opt_D_dump_rules | Opt_D_dump_usagesp | Opt_D_dump_cse @@ -246,6 +248,7 @@ data DynFlag | Opt_D_dump_rn_stats | Opt_D_dump_stix | Opt_D_dump_simpl_stats + | Opt_D_dump_tc_trace | Opt_D_dump_BCOs | Opt_D_source_stats | Opt_D_verbose_core2core @@ -279,8 +282,6 @@ data DynFlag | Opt_Generics | Opt_NoImplicitPrelude - -- misc - | Opt_ReportCompile deriving (Eq) data DynFlags = DynFlags { @@ -317,7 +318,7 @@ defaultDynFlags = DynFlags { opt_c = [], opt_a = [], opt_m = [], - flags = [] + flags = standardWarnings, } {- @@ -347,6 +348,9 @@ data HscLang = HscC | HscAsm | HscJava +#ifdef ILX + | HscILX +#endif | HscInterpreted deriving (Eq, Show) @@ -356,6 +360,38 @@ dopt_HscLang = hscLang %************************************************************************ %* * +\subsection{Warnings} +%* * +%************************************************************************ + +\begin{code} +standardWarnings + = [ Opt_WarnDeprecations, + Opt_WarnOverlappingPatterns, + Opt_WarnMissingFields, + Opt_WarnMissingMethods, + Opt_WarnDuplicateExports + ] + +minusWOpts + = standardWarnings ++ + [ Opt_WarnUnusedBinds, + Opt_WarnUnusedMatches, + Opt_WarnUnusedImports, + Opt_WarnIncompletePatterns + ] + +minusWallOpts + = minusWOpts ++ + [ Opt_WarnTypeDefaults, + Opt_WarnNameShadowing, + Opt_WarnMissingSigs, + Opt_WarnHiShadows + ] +\end{code} + +%************************************************************************ +%* * \subsection{Classifying command-line options} %* * %************************************************************************ @@ -445,14 +481,14 @@ opt_DoSemiTagging = lookUp SLIT("-fsemi-tagging") opt_FoldrBuildOn = lookUp SLIT("-ffoldr-build-on") opt_LiberateCaseThreshold = lookup_def_int "-fliberate-case-threshold" (10::Int) opt_StgDoLetNoEscapes = lookUp SLIT("-flet-no-escape") -opt_UnfoldCasms = lookUp SLIT("-funfold-casms-in-hi-file") +opt_UnfoldCasms = lookUp SLIT("-funfold-casms-in-hi-file") opt_UsageSPOn = lookUp SLIT("-fusagesp-on") opt_UnboxStrictFields = lookUp SLIT("-funbox-strict-fields") {- The optional '-inpackage=P' flag tells what package we are compiling this module for. - The Prelude, for example is compiled with '-inpackage prelude' + The Prelude, for example is compiled with '-inpackage std' -} opt_InPackage = case lookup_str "-inpackage=" of Just p -> _PK_ p @@ -471,18 +507,15 @@ opt_OmitInterfacePragmas = lookUp SLIT("-fomit-interface-pragmas") opt_KeepStgTypes = lookUp SLIT("-fkeep-stg-types") -- Simplifier switches -opt_SimplNoPreInlining = lookUp SLIT("-fno-pre-inlining") +opt_SimplNoPreInlining = lookUp SLIT("-fno-pre-inlining") -- NoPreInlining is there just to see how bad things -- get if you don't do it! -opt_SimplDoEtaReduction = lookUp SLIT("-fdo-eta-reduction") -opt_SimplDoLambdaEtaExpansion = lookUp SLIT("-fdo-lambda-eta-expansion") -opt_SimplCaseOfCase = lookUp SLIT("-fcase-of-case") -opt_SimplCaseMerge = lookUp SLIT("-fcase-merge") -opt_SimplPedanticBottoms = lookUp SLIT("-fpedantic-bottoms") -opt_SimplExcessPrecision = lookUp SLIT("-fexcess-precision") +opt_SimplDoEtaReduction = lookUp SLIT("-fdo-eta-reduction") +opt_SimplDoLambdaEtaExpansion = lookUp SLIT("-fdo-lambda-eta-expansion") +opt_SimplCaseMerge = lookUp SLIT("-fcase-merge") +opt_SimplExcessPrecision = lookUp SLIT("-fexcess-precision") -- Unfolding control -opt_UF_HiFileThreshold = lookup_def_int "-funfolding-interface-threshold" (45::Int) opt_UF_CreationThreshold = lookup_def_int "-funfolding-creation-threshold" (45::Int) opt_UF_UseThreshold = lookup_def_int "-funfolding-use-threshold" (8::Int) -- Discounts can be big opt_UF_FunAppDiscount = lookup_def_int "-funfolding-fun-discount" (6::Int) -- It's great to inline a fn @@ -492,10 +525,10 @@ opt_UF_UpdateInPlace = lookUp SLIT("-funfolding-update-in-place") opt_UF_CheapOp = ( 1 :: Int) -- Only one instruction; and the args are charged for opt_UF_DearOp = ( 4 :: Int) -opt_NoPruneDecls = lookUp SLIT("-fno-prune-decls") -opt_NoPruneTyDecls = lookUp SLIT("-fno-prune-tydecls") -opt_Static = lookUp SLIT("-static") -opt_Unregisterised = lookUp SLIT("-funregisterised") +opt_NoPruneDecls = lookUp SLIT("-fno-prune-decls") +opt_NoPruneTyDecls = lookUp SLIT("-fno-prune-tydecls") +opt_Static = lookUp SLIT("-static") +opt_Unregisterised = lookUp SLIT("-funregisterised") \end{code} %************************************************************************ @@ -539,12 +572,9 @@ isStaticHscFlag f = "fno-pre-inlining", "fdo-eta-reduction", "fdo-lambda-eta-expansion", - "fcase-of-case", "fcase-merge", - "fpedantic-bottoms", "fexcess-precision", "funfolding-update-in-place", - "freport-compile", "fno-prune-decls", "fno-prune-tydecls", "static", @@ -554,7 +584,6 @@ isStaticHscFlag f = "fcontext-stack", "fliberate-case-threshold", "fhistory-size", - "funfolding-interface-threshold", "funfolding-creation-threshold", "funfolding-use-threshold", "funfolding-fun-discount",