Commit a3113e20 authored by simonmar's avatar simonmar
Browse files

[project @ 2000-10-18 09:40:17 by simonmar]

- 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.
parent ea800ce5
%
% (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
......
......@@ -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}
%************************************************************************
......
-----------------------------------------------------------------------------
-- $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) )
]
-----------------------------------------------------------------------------
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment