[project @ 2000-10-18 09:40:17 by simonmar]
authorsimonmar <unknown>
Wed, 18 Oct 2000 09:40:18 +0000 (09:40 +0000)
committersimonmar <unknown>
Wed, 18 Oct 2000 09:40:18 +0000 (09:40 +0000)
- Dynamicise another couple of options (-fgenerics & -freport-compile)
  The rest look awkward to move into DynFlags.

- Move opt_UseVanillaRegs & friends to CgRetConv, since they aren't
  real options.

ghc/compiler/codeGen/CgRetConv.lhs
ghc/compiler/main/CmdLineOpts.lhs
ghc/compiler/main/DriverFlags.hs

index 4c6d89b..cec13b2 100644 (file)
@@ -1,7 +1,7 @@
 %
 % (c) The GRASP Project, Glasgow University, 1992-1998
 %
-% $Id: CgRetConv.lhs,v 1.27 2000/10/12 15:17:08 sewardj Exp $
+% $Id: CgRetConv.lhs,v 1.28 2000/10/18 09:40:17 simonmar Exp $
 %
 \section[CgRetConv]{Return conventions for the code generator}
 
@@ -21,11 +21,11 @@ module CgRetConv (
 import AbsCSyn         -- quite a few things
 import Constants       ( mAX_FAMILY_SIZE_FOR_VEC_RETURNS,
                          mAX_Vanilla_REG, mAX_Float_REG,
-                         mAX_Double_REG, mAX_Long_REG
-                       )
-import CmdLineOpts     ( opt_UseVanillaRegs, opt_UseFloatRegs,
-                         opt_UseDoubleRegs, opt_UseLongRegs
+                         mAX_Double_REG, mAX_Long_REG,
+                         mAX_Real_Vanilla_REG, mAX_Real_Float_REG,
+                         mAX_Real_Double_REG, mAX_Real_Long_REG
                        )
+import CmdLineOpts     ( opt_Unregisterised )
 import Maybes          ( catMaybes )
 import PrimRep         ( isFloatingRep, PrimRep(..), is64BitRep )
 import TyCon           ( TyCon, tyConFamilySize )
@@ -185,11 +185,20 @@ We take these register supplies from the *real* registers, i.e. those
 that are guaranteed to map to machine registers.
 
 \begin{code}
+useVanillaRegs | opt_Unregisterised = 0
+              | otherwise          = mAX_Real_Vanilla_REG
+useFloatRegs   | opt_Unregisterised = 0
+              | otherwise          = mAX_Real_Float_REG
+useDoubleRegs  | opt_Unregisterised = 0
+              | otherwise          = mAX_Real_Double_REG
+useLongRegs    | opt_Unregisterised = 0
+              | otherwise          = mAX_Real_Long_REG
+
 vanillaRegNos, floatRegNos, doubleRegNos, longRegNos :: [Int]
-vanillaRegNos   = regList opt_UseVanillaRegs
-floatRegNos     = regList opt_UseFloatRegs
-doubleRegNos    = regList opt_UseDoubleRegs
-longRegNos       = regList opt_UseLongRegs
+vanillaRegNos   = regList useVanillaRegs
+floatRegNos     = regList useFloatRegs
+doubleRegNos    = regList useDoubleRegs
+longRegNos       = regList useLongRegs
 
 allVanillaRegNos, allFloatRegNos, allDoubleRegNos, allLongRegNos :: [Int]
 allVanillaRegNos = regList mAX_Vanilla_REG
index aa7498d..4fc8240 100644 (file)
@@ -40,7 +40,6 @@ module CmdLineOpts (
        opt_AllStrict,
        opt_DictsStrict,
         opt_MaxContextReductionDepth,
-       opt_Generics,
        opt_IrrefutableTuples,
        opt_NumbersStrict,
        opt_Parallel,
@@ -87,16 +86,9 @@ module CmdLineOpts (
        opt_OmitInterfacePragmas,
        opt_NoPruneTyDecls,
        opt_NoPruneDecls,
-       opt_ReportCompile,
        opt_Static,
        opt_Unregisterised,
-       opt_Verbose,
-
-       -- Code generation
-       opt_UseVanillaRegs,
-       opt_UseFloatRegs,
-       opt_UseDoubleRegs,
-       opt_UseLongRegs
+       opt_Verbose
     ) where
 
 #include "HsVersions.h"
@@ -276,6 +268,10 @@ data DynFlag
    | Opt_AllowOverlappingInstances
    | Opt_AllowUndecidableInstances
    | Opt_GlasgowExts
+   | Opt_Generics
+
+   -- misc
+   | Opt_ReportCompile
    deriving (Eq)
 
 data DynFlags = DynFlags {
@@ -380,7 +376,6 @@ opt_DoTickyProfiling                = lookUp  SLIT("-fticky-ticky")
 -- language opts
 opt_AllStrict                  = lookUp  SLIT("-fall-strict")
 opt_DictsStrict                        = lookUp  SLIT("-fdicts-strict")
-opt_Generics                   = lookUp  SLIT("-fgenerics")
 opt_IrrefutableTuples          = lookUp  SLIT("-firrefutable-tuples")
 opt_MaxContextReductionDepth   = lookup_def_int "-fcontext-stack" mAX_CONTEXT_REDUCTION_DEPTH
 opt_NumbersStrict              = lookUp  SLIT("-fnumbers-strict")
@@ -439,21 +434,11 @@ 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_ReportCompile               = lookUp SLIT("-freport-compile")
 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_Verbose                    = lookUp SLIT("-v")
-
-opt_UseVanillaRegs | opt_Unregisterised = 0
-                  | otherwise          = mAX_Real_Vanilla_REG
-opt_UseFloatRegs   | opt_Unregisterised = 0
-                  | otherwise          = mAX_Real_Float_REG
-opt_UseDoubleRegs  | opt_Unregisterised = 0
-                  | otherwise          = mAX_Real_Double_REG
-opt_UseLongRegs    | opt_Unregisterised = 0
-                  | otherwise          = mAX_Real_Long_REG
 \end{code}
 
 %************************************************************************
index 85ee4d1..cd6a60c 100644 (file)
@@ -1,5 +1,5 @@
 -----------------------------------------------------------------------------
--- $Id: DriverFlags.hs,v 1.5 2000/10/17 13:22:10 simonmar Exp $
+-- $Id: DriverFlags.hs,v 1.6 2000/10/18 09:40:18 simonmar Exp $
 --
 -- Driver flags
 --
@@ -397,6 +397,10 @@ dynamic_flags = [
 
   ,  ( "fallow-undecidable-instances",
                NoArg (setDynFlag Opt_AllowUndecidableInstances) )
+
+  ,  ( "fgenerics",  NoArg (setDynFlag Opt_Generics) )
+
+  ,  ( "freport-compile", NoArg (setDynFlag Opt_ReportCompile) )
  ]
 
 -----------------------------------------------------------------------------