[project @ 2003-06-25 08:20:20 by simonpj]
[ghc-hetmet.git] / ghc / compiler / main / CmdLineOpts.lhs
index fd17c53..6cf2f3d 100644 (file)
@@ -73,12 +73,11 @@ module CmdLineOpts (
        -- optimisation opts
        opt_NoMethodSharing,
        opt_DoSemiTagging,
-       opt_FoldrBuildOn,
        opt_LiberateCaseThreshold,
        opt_StgDoLetNoEscapes,
        opt_UnfoldCasms,
        opt_CprOff,
-        opt_UsageSPOn,
+       opt_RulesOff,
        opt_UnboxStrictFields,
        opt_SimplNoPreInlining,
        opt_SimplDoEtaReduction,
@@ -108,7 +107,6 @@ module CmdLineOpts (
         opt_NoHiCheck,
        opt_OmitBlackHoling,
        opt_OmitInterfacePragmas,
-       opt_NoPruneTyDecls,
        opt_NoPruneDecls,
        opt_Static,
        opt_Unregisterised,
@@ -117,15 +115,15 @@ module CmdLineOpts (
 
 #include "HsVersions.h"
 
-import GlaExts
-import IOExts  ( IORef, readIORef, writeIORef )
 import Constants       -- Default values for some flags
 import Util
-import FastTypes
 import FastString      ( FastString, mkFastString )
 import Config
-
 import Maybes          ( firstJust )
+
+import GLAEXTS
+import DATA_IOREF      ( IORef, readIORef, writeIORef )
+import UNSAFE_IO       ( unsafePerformIO )
 \end{code}
 
 %************************************************************************
@@ -186,7 +184,6 @@ data CoreToDo               -- These are diff core-to-core passes,
   | CoreDoWorkerWrapper
   | CoreDoSpecialising
   | CoreDoSpecConstr
-  | CoreDoUSPInf
   | CoreDoOldStrictness
   | CoreDoGlomBinds
   | CoreCSE
@@ -250,7 +247,6 @@ data DynFlag
    | Opt_D_dump_tc
    | Opt_D_dump_types
    | Opt_D_dump_rules
-   | Opt_D_dump_usagesp
    | Opt_D_dump_cse
    | Opt_D_dump_worker_wrapper
    | Opt_D_dump_rn_trace
@@ -258,6 +254,7 @@ data DynFlag
    | Opt_D_dump_stix
    | Opt_D_dump_simpl_stats
    | Opt_D_dump_tc_trace
+   | Opt_D_dump_splices
    | Opt_D_dump_BCOs
    | Opt_D_dump_vect
    | Opt_D_source_stats
@@ -268,8 +265,8 @@ data DynFlag
    | Opt_D_dump_minimal_imports
    | Opt_DoCoreLinting
    | Opt_DoStgLinting
-   | Opt_DoUSPLinting
 
+   | Opt_WarnIsError           -- -Werror; makes warnings fatal
    | Opt_WarnDuplicateExports
    | Opt_WarnHiShadows
    | Opt_WarnIncompletePatterns
@@ -295,6 +292,7 @@ data DynFlag
    | Opt_FFI
    | Opt_PArr                         -- syntactic support for parallel arrays
    | Opt_With                         -- deprecated keyword for implicit parms
+   | Opt_Arrows                               -- Arrow-notation syntax
    | Opt_Generics
    | Opt_NoImplicitPrelude 
 
@@ -342,7 +340,8 @@ data HscLang
 defaultHscLang
   | cGhcWithNativeCodeGen == "YES" && 
        (prefixMatch "i386" cTARGETPLATFORM ||
-        prefixMatch "sparc" cTARGETPLATFORM)   =  HscAsm
+        prefixMatch "sparc" cTARGETPLATFORM ||
+        prefixMatch "powerpc" cTARGETPLATFORM)   =  HscAsm
   | otherwise                                  =  HscC
 
 defaultDynFlags = DynFlags {
@@ -586,13 +585,12 @@ opt_Flatten                       = lookUp  FSLIT("-fflatten")
 -- optimisation opts
 opt_NoMethodSharing            = lookUp  FSLIT("-fno-method-sharing")
 opt_DoSemiTagging              = lookUp  FSLIT("-fsemi-tagging")
-opt_FoldrBuildOn               = lookUp  FSLIT("-ffoldr-build-on")
 opt_CprOff                     = lookUp  FSLIT("-fcpr-off")
+opt_RulesOff                   = lookUp  FSLIT("-frules-off")
        -- Switch off CPR analysis in the new demand analyser
 opt_LiberateCaseThreshold      = lookup_def_int "-fliberate-case-threshold" (10::Int)
 opt_StgDoLetNoEscapes          = lookUp  FSLIT("-flet-no-escape")
 opt_UnfoldCasms                        = lookUp  FSLIT("-funfold-casms-in-hi-file")
-opt_UsageSPOn                  = lookUp  FSLIT("-fusagesp-on")
 opt_UnboxStrictFields          = lookUp  FSLIT("-funbox-strict-fields")
 opt_MaxWorkerArgs              = lookup_def_int "-fmax-worker-args" (10::Int)
 
@@ -637,7 +635,6 @@ opt_UF_CheapOp  = ( 1 :: Int)       -- Only one instruction; and the args are charged
 opt_UF_DearOp   = ( 4 :: Int)
                        
 opt_NoPruneDecls               = lookUp  FSLIT("-fno-prune-decls")
-opt_NoPruneTyDecls             = lookUp  FSLIT("-fno-prune-tydecls")
 opt_Static                     = lookUp  FSLIT("-static")
 opt_Unregisterised             = lookUp  FSLIT("-funregisterised")
 opt_EmitExternalCore           = lookUp  FSLIT("-fext-core")
@@ -666,10 +663,8 @@ isStaticHscFlag f =
        "fsmp",
        "fflatten",
        "fsemi-tagging",
-       "ffoldr-build-on",
        "flet-no-escape",
        "funfold-casms-in-hi-file",
-       "fusagesp-on",
        "funbox-strict-fields",
        "femit-extern-decls",
        "fglobalise-toplev-names",
@@ -688,11 +683,11 @@ isStaticHscFlag f =
        "fexcess-precision",
        "funfolding-update-in-place",
        "fno-prune-decls",
-       "fno-prune-tydecls",
        "static",
        "funregisterised",
        "fext-core",
        "frule-check",
+       "frules-off",
        "fcpr-off"
        ]
   || any (flip prefixMatch f) [