module CmdLineOpts (
CoreToDo(..), StgToDo(..),
SimplifierSwitch(..),
- SimplifierMode(..),
+ SimplifierMode(..), FloatOutSwitches(..),
HscLang(..),
DynFlag(..), -- needed non-abstractly by DriverFlags
import GlaExts
import IOExts ( IORef, readIORef, writeIORef )
-import BasicTypes ( CompilerPhase )
import Constants -- Default values for some flags
import Util
import FastTypes
-- Each run of the simplifier can take a different
-- set of simplifier-specific flags.
| CoreDoFloatInwards
- | CoreDoFloatOutwards Bool -- True <=> float lambdas to top level
+ | CoreDoFloatOutwards FloatOutSwitches
| CoreLiberateCase
| CoreDoPrintCore
| CoreDoStaticArgs
| CoreDoCPResult
| CoreDoGlomBinds
| CoreCSE
- | CoreDoRuleCheck CompilerPhase String -- Check for non-application of rules
+ | CoreDoRuleCheck Int{-CompilerPhase-} String -- Check for non-application of rules
-- matching this string
| CoreDoNothing -- useful when building up lists of these things
data SimplifierSwitch
= MaxSimplifierIterations Int
| NoCaseOfCase
+
+data FloatOutSwitches
+ = FloatOutSw Bool -- True <=> float lambdas to top level
+ Bool -- True <=> float constants to top level,
+ -- even if they do not escape a lambda
\end{code}
%************************************************************************
| Opt_D_dump_simpl
| Opt_D_dump_simpl_iterations
| Opt_D_dump_spec
- | Opt_D_dump_sat
+ | Opt_D_dump_prep
| Opt_D_dump_stg
| Opt_D_dump_stranal
| Opt_D_dump_tc
extCoreName :: String, -- name of the .core output file
verbosity :: Int, -- verbosity level
cppFlag :: Bool, -- preprocess with cpp?
+ ppFlag :: Bool, -- preprocess with a Haskell Pp?
stolen_x86_regs :: Int,
cmdlineHcIncludes :: [String], -- -#includes
-- options for particular phases
opt_L :: [String],
opt_P :: [String],
+ opt_F :: [String],
opt_c :: [String],
opt_a :: [String],
opt_m :: [String],
extCoreName = "",
verbosity = 0,
cppFlag = False,
+ ppFlag = False,
stolen_x86_regs = 4,
cmdlineHcIncludes = [],
opt_L = [],
opt_P = [],
+ opt_F = [],
opt_c = [],
opt_a = [],
opt_m = [],