[project @ 2001-02-07 11:45:19 by simonmar]
[ghc-hetmet.git] / ghc / compiler / main / CmdLineOpts.lhs
index bf00769..d438189 100644 (file)
@@ -51,8 +51,10 @@ module CmdLineOpts (
        opt_NumbersStrict,
        opt_Parallel,
        opt_SMP,
+       opt_NoMonomorphismRestriction,
 
        -- optimisation opts
+       opt_NoMethodSharing,
        opt_DoSemiTagging,
        opt_FoldrBuildOn,
        opt_LiberateCaseThreshold,
@@ -189,9 +191,7 @@ data CoreToDo               -- These are diff core-to-core passes,
 
 \begin{code}
 data StgToDo
-  = StgDoStaticArgs
-  | StgDoLambdaLift
-  | StgDoMassageForProfiling  -- should be (next to) last
+  = StgDoMassageForProfiling  -- should be (next to) last
   -- There's also setStgVarInfo, but its absolute "lastness"
   -- is so critical that it is hardwired in (no flag).
   | D_stg_stats
@@ -231,6 +231,7 @@ data DynFlag
    | Opt_D_dump_simpl
    | Opt_D_dump_simpl_iterations
    | Opt_D_dump_spec
+   | Opt_D_dump_sat
    | Opt_D_dump_stg
    | Opt_D_dump_stranal
    | Opt_D_dump_tc
@@ -243,6 +244,7 @@ data DynFlag
    | Opt_D_dump_rn_stats
    | Opt_D_dump_stix
    | Opt_D_dump_simpl_stats
+   | Opt_D_dump_BCOs
    | Opt_D_source_stats
    | Opt_D_verbose_core2core
    | Opt_D_verbose_stg2stg
@@ -280,18 +282,40 @@ data DynFlag
    deriving (Eq)
 
 data DynFlags = DynFlags {
-  coreToDo   :: [CoreToDo],
-  stgToDo    :: [StgToDo],
-  hscLang    :: HscLang,
-  hscOutName :: String,  -- name of the file in which to place output
-  verbosity  :: Int,    -- verbosity level
-  flags      :: [DynFlag]
+  coreToDo             :: [CoreToDo],
+  stgToDo              :: [StgToDo],
+  hscLang              :: HscLang,
+  hscOutName           :: String,      -- name of the output file
+  verbosity            :: Int,         -- verbosity level
+  cppFlag              :: Bool,        -- preprocess with cpp?
+  stolen_x86_regs      :: Int,         
+  cmdlineHcIncludes    :: [String],    -- -#includes
+
+  -- options for particular phases
+  opt_L                        :: [String],
+  opt_P                        :: [String],
+  opt_c                        :: [String],
+  opt_a                        :: [String],
+  opt_m                        :: [String],
+
+  -- hsc dynamic flags
+  flags                :: [DynFlag]
  }
 
 defaultDynFlags = DynFlags {
   coreToDo = [], stgToDo = [], 
-  hscLang = HscC, hscOutName = "", 
-  verbosity = 0, flags = []
+  hscLang = HscC, 
+  hscOutName = "", 
+  verbosity = 0, 
+  cppFlag              = False,
+  stolen_x86_regs      = 4,
+  cmdlineHcIncludes    = [],
+  opt_L                        = [],
+  opt_P                        = [],
+  opt_c                        = [],
+  opt_a                        = [],
+  opt_m                        = [],
+  flags = []
   }
 
 {- 
@@ -405,6 +429,7 @@ opt_DoTickyProfiling                = lookUp  SLIT("-fticky-ticky")
 
 -- language opts
 opt_AllStrict                  = lookUp  SLIT("-fall-strict")
+opt_NoMonomorphismRestriction  = lookUp  SLIT("-fno-monomorphism-restriction")
 opt_DictsStrict                        = lookUp  SLIT("-fdicts-strict")
 opt_IrrefutableTuples          = lookUp  SLIT("-firrefutable-tuples")
 opt_MaxContextReductionDepth   = lookup_def_int "-fcontext-stack" mAX_CONTEXT_REDUCTION_DEPTH
@@ -413,6 +438,7 @@ opt_Parallel                        = lookUp  SLIT("-fparallel")
 opt_SMP                                = lookUp  SLIT("-fsmp")
 
 -- optimisation opts
+opt_NoMethodSharing            = lookUp  SLIT("-fno-method-sharing")
 opt_DoSemiTagging              = lookUp  SLIT("-fsemi-tagging")
 opt_FoldrBuildOn               = lookUp  SLIT("-ffoldr-build-on")
 opt_LiberateCaseThreshold      = lookup_def_int "-fliberate-case-threshold" (10::Int)
@@ -502,8 +528,9 @@ isStaticHscFlag f =
        "fignore-asserts",
        "fignore-interface-pragmas",
        "fno-hi-version-check",
-       "fno-implicit-prelude",
        "dno-black-holing",
+       "fno-method-sharing",
+        "fno-monomorphism-restriction",
        "fomit-interface-pragmas",
        "fno-pre-inlining",
        "fdo-eta-reduction",