X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=compiler%2Fmain%2FDynFlags.hs;h=be14a5bdee9e777a31ab1e3e8d8603259f05f9ad;hb=0f7d268d00795a58a06ae3c92ebbd14571295b84;hp=3de40123f2e5b7618113a03c63247b99bd07183c;hpb=2c4b58d916b109f7285916a61dfd2755eeb7f22d;p=ghc-hetmet.git diff --git a/compiler/main/DynFlags.hs b/compiler/main/DynFlags.hs index 3de4012..be14a5b 100644 --- a/compiler/main/DynFlags.hs +++ b/compiler/main/DynFlags.hs @@ -47,7 +47,9 @@ module DynFlags ( allFlags, -- misc stuff - machdepCCOpts, picCCOpts + machdepCCOpts, picCCOpts, + supportedLanguages, + compilerInfo, ) where #include "HsVersions.h" @@ -94,6 +96,12 @@ data DynFlag = Opt_D_dump_cmm | Opt_D_dump_cps_cmm | Opt_D_dump_asm + | Opt_D_dump_asm_native + | Opt_D_dump_asm_liveness + | Opt_D_dump_asm_coalesce + | Opt_D_dump_asm_regalloc + | Opt_D_dump_asm_regalloc_stages + | Opt_D_dump_asm_conflicts | Opt_D_dump_cpranal | Opt_D_dump_deriv | Opt_D_dump_ds @@ -160,9 +168,9 @@ data DynFlag | Opt_WarnTabs -- language opts - | Opt_AllowOverlappingInstances - | Opt_AllowUndecidableInstances - | Opt_AllowIncoherentInstances + | Opt_OverlappingInstances + | Opt_UndecidableInstances + | Opt_IncoherentInstances | Opt_MonomorphismRestriction | Opt_MonoPatBinds | Opt_ExtendedDefaultRules -- Use GHC's extended rules for defaulting @@ -170,7 +178,7 @@ data DynFlag | Opt_UnliftedFFITypes | Opt_PArr -- Syntactic support for parallel arrays | Opt_Arrows -- Arrow-notation syntax - | Opt_TH + | Opt_TemplateHaskell | Opt_ImplicitParams | Opt_Generics | Opt_ImplicitPrelude @@ -183,7 +191,7 @@ data DynFlag | Opt_RecordWildCards | Opt_RecordPuns | Opt_GADTs - | Opt_RelaxedPolyRec -- -X=RelaxedPolyRec + | Opt_RelaxedPolyRec | Opt_StandaloneDeriving | Opt_DeriveDataTypeable | Opt_TypeSynonymInstances @@ -227,6 +235,7 @@ data DynFlag | Opt_DictsCheap | Opt_RewriteRules | Opt_Vectorise + | Opt_RegsGraph -- misc opts | Opt_Cpp @@ -988,6 +997,13 @@ dynamic_flags = [ , ( "ddump-cmm", setDumpFlag Opt_D_dump_cmm) , ( "ddump-cps-cmm", setDumpFlag Opt_D_dump_cps_cmm) , ( "ddump-asm", setDumpFlag Opt_D_dump_asm) + , ( "ddump-asm-native", setDumpFlag Opt_D_dump_asm_native) + , ( "ddump-asm-liveness", setDumpFlag Opt_D_dump_asm_liveness) + , ( "ddump-asm-coalesce", setDumpFlag Opt_D_dump_asm_coalesce) + , ( "ddump-asm-regalloc", setDumpFlag Opt_D_dump_asm_regalloc) + , ( "ddump-asm-conflicts", setDumpFlag Opt_D_dump_asm_conflicts) + , ( "ddump-asm-regalloc-stages", + setDumpFlag Opt_D_dump_asm_regalloc_stages) , ( "ddump-cpranal", setDumpFlag Opt_D_dump_cpranal) , ( "ddump-deriv", setDumpFlag Opt_D_dump_deriv) , ( "ddump-ds", setDumpFlag Opt_D_dump_ds) @@ -1049,7 +1065,7 @@ dynamic_flags = [ ------ Optimisation flags ------------------------------------------ , ( "O" , NoArg (upd (setOptLevel 1))) - , ( "Onot" , NoArg (upd (setOptLevel 0))) + , ( "Onot" , NoArg (upd (setOptLevel 0))) -- deprecated , ( "O" , OptIntSuffix (\mb_n -> upd (setOptLevel (mb_n `orElse` 1)))) -- If the number is missing, use 1 @@ -1135,8 +1151,9 @@ fFlags = [ ( "rewrite-rules", Opt_RewriteRules ), ( "break-on-exception", Opt_BreakOnException ), ( "vectorise", Opt_Vectorise ), + ( "regs-graph", Opt_RegsGraph), -- Deprecated in favour of -XTemplateHaskell: - ( "th", Opt_TH ), + ( "th", Opt_TemplateHaskell ), -- Deprecated in favour of -XForeignFunctionInterface: ( "fi", Opt_ForeignFunctionInterface ), -- Deprecated in favour of -XForeignFunctionInterface: @@ -1159,14 +1176,18 @@ fFlags = [ ( "implicit-params", Opt_ImplicitParams ), -- Deprecated in favour of -XScopedTypeVariables: ( "scoped-type-variables", Opt_ScopedTypeVariables ), + -- Deprecated in favour of -XPArr: + ( "parr", Opt_PArr ), -- Deprecated in favour of -XOverlappingInstances: - ( "AllowOverlappingInstances", Opt_AllowOverlappingInstances ), + ( "allow-overlapping-instances", Opt_OverlappingInstances ), -- Deprecated in favour of -XUndecidableInstances: - ( "AllowUndecidableInstances", Opt_AllowUndecidableInstances ), + ( "allow-undecidable-instances", Opt_UndecidableInstances ), -- Deprecated in favour of -XIncoherentInstances: - ( "AllowIncoherentInstances", Opt_AllowIncoherentInstances ) + ( "allow-incoherent-instances", Opt_IncoherentInstances ) ] +supportedLanguages :: [String] +supportedLanguages = map fst xFlags -- These -X flags can all be reversed with -XNo xFlags :: [(String, DynFlag)] @@ -1190,8 +1211,8 @@ xFlags = [ ( "TypeOperators", Opt_TypeOperators ), ( "RecursiveDo", Opt_RecursiveDo ), ( "Arrows", Opt_Arrows ), - ( "Parr", Opt_PArr ), - ( "TemplateHaskell", Opt_TH ), + ( "PArr", Opt_PArr ), + ( "TemplateHaskell", Opt_TemplateHaskell ), ( "Generics", Opt_Generics ), -- On by default: ( "ImplicitPrelude", Opt_ImplicitPrelude ), @@ -1220,9 +1241,9 @@ xFlags = [ ( "MultiParamTypeClasses", Opt_MultiParamTypeClasses ), ( "FunctionalDependencies", Opt_FunctionalDependencies ), ( "GeneralizedNewtypeDeriving", Opt_GeneralizedNewtypeDeriving ), - ( "OverlappingInstances", Opt_AllowOverlappingInstances ), - ( "UndecidableInstances", Opt_AllowUndecidableInstances ), - ( "IncoherentInstances", Opt_AllowIncoherentInstances ) + ( "OverlappingInstances", Opt_OverlappingInstances ), + ( "UndecidableInstances", Opt_UndecidableInstances ), + ( "IncoherentInstances", Opt_IncoherentInstances ) ] impliedFlags :: [(DynFlag, [DynFlag])] @@ -1629,18 +1650,21 @@ picCCOpts dflags -- Splitting can_split :: Bool -can_split = -#if defined(i386_TARGET_ARCH) \ - || defined(x86_64_TARGET_ARCH) \ - || defined(alpha_TARGET_ARCH) \ - || defined(hppa_TARGET_ARCH) \ - || defined(m68k_TARGET_ARCH) \ - || defined(mips_TARGET_ARCH) \ - || defined(powerpc_TARGET_ARCH) \ - || defined(rs6000_TARGET_ARCH) \ - || defined(sparc_TARGET_ARCH) - True -#else - False -#endif +can_split = cSplitObjs == "YES" + +-- ----------------------------------------------------------------------------- +-- Compiler Info + +compilerInfo :: [(String, String)] +compilerInfo = [("Project name", cProjectName), + ("Project version", cProjectVersion), + ("Booter version", cBooterVersion), + ("Stage", cStage), + ("Interface file version", cHscIfaceFileVersion), + ("Object splitting", cSplitObjs), + ("Have native code generator", cGhcWithNativeCodeGen), + ("Unregisterised", cGhcUnregisterised), + ("Tables next to code", cGhcEnableTablesNextToCode), + ("Win32 DLLs", cEnableWin32DLLs), + ("Leading underscore", cLeadingUnderscore)]