[project @ 2001-03-26 12:28:15 by simonmar]
[ghc-hetmet.git] / ghc / compiler / main / CmdLineOpts.lhs
index f3c271a..9227351 100644 (file)
@@ -75,7 +75,6 @@ module CmdLineOpts (
        opt_SimplExcessPrecision,
 
        -- Unfolding control
-       opt_UF_HiFileThreshold,
        opt_UF_CreationThreshold,
        opt_UF_UseThreshold,
        opt_UF_FunAppDiscount,
@@ -185,6 +184,7 @@ data CoreToDo               -- These are diff core-to-core passes,
   | CoreDoStrictness
   | CoreDoWorkerWrapper
   | CoreDoSpecialising
+  | CoreDoSpecConstr
   | CoreDoUSPInf
   | CoreDoCPResult
   | CoreDoGlomBinds
@@ -289,6 +289,8 @@ data DynFlags = DynFlags {
   stgToDo              :: [StgToDo],
   hscLang              :: HscLang,
   hscOutName           :: String,      -- name of the output file
+  hscStubHOutName      :: String,      -- name of the .stub_h output file
+  hscStubCOutName      :: String,      -- name of the .stub_c output file
   verbosity            :: Int,         -- verbosity level
   cppFlag              :: Bool,        -- preprocess with cpp?
   stolen_x86_regs      :: Int,         
@@ -309,6 +311,7 @@ defaultDynFlags = DynFlags {
   coreToDo = [], stgToDo = [], 
   hscLang = HscC, 
   hscOutName = "", 
+  hscStubHOutName = "", hscStubCOutName = "",
   verbosity = 0, 
   cppFlag              = False,
   stolen_x86_regs      = 4,
@@ -348,6 +351,9 @@ data HscLang
   = HscC
   | HscAsm
   | HscJava
+#ifdef ILX
+  | HscILX
+#endif
   | HscInterpreted
     deriving (Eq, Show)
 
@@ -478,14 +484,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
@@ -504,16 +510,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_SimplCaseMerge             = lookUp SLIT("-fcase-merge")
-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
@@ -523,10 +528,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}
 
 %************************************************************************
@@ -582,7 +587,6 @@ isStaticHscFlag f =
        "fcontext-stack",
        "fliberate-case-threshold",
        "fhistory-size",
-       "funfolding-interface-threshold",
        "funfolding-creation-threshold",
        "funfolding-use-threshold",
        "funfolding-fun-discount",