1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
module GHC.Driver.Config.Core.Rules
( initRuleOpts
) where
import GHC.Prelude
import GHC.Driver.Flags
import GHC.Driver.DynFlags ( DynFlags, gopt, targetPlatform, homeUnitId_ )
import GHC.Core.Rules.Config
import GHC.Unit.Types ( primUnitId, bignumUnitId )
-- | Initialize RuleOpts from DynFlags
initRuleOpts :: DynFlags -> RuleOpts
initRuleOpts dflags = RuleOpts
{ roPlatform = targetPlatform dflags
, roNumConstantFolding = gopt Opt_NumConstantFolding dflags
, roExcessRationalPrecision = gopt Opt_ExcessPrecision dflags
-- disable bignum rules in ghc-prim and ghc-bignum itself
, roBignumRules = homeUnitId_ dflags /= primUnitId
&& homeUnitId_ dflags /= bignumUnitId
}
|