ghc-lib-0.20220701: compiler/GHC/Driver/Config/CoreToStg/Prep.hs
module GHC.Driver.Config.CoreToStg.Prep
( initCorePrepConfig
, initCorePrepPgmConfig
) where
import GHC.Prelude
import GHC.Driver.Env
import GHC.Driver.Session
import GHC.Driver.Config.Core.Lint
import GHC.Runtime.Context ( InteractiveContext )
import GHC.Tc.Utils.Env
import GHC.CoreToStg.Prep
initCorePrepConfig :: HscEnv -> IO CorePrepConfig
initCorePrepConfig hsc_env = do
convertNumLit <- do
let platform = targetPlatform $ hsc_dflags hsc_env
home_unit = hsc_home_unit hsc_env
lookup_global = lookupGlobal hsc_env
mkConvertNumLiteral platform home_unit lookup_global
return $ CorePrepConfig
{ cp_catchNonexhaustiveCases = gopt Opt_CatchNonexhaustiveCases $ hsc_dflags hsc_env
, cp_convertNumLit = convertNumLit
}
initCorePrepPgmConfig :: InteractiveContext -> DynFlags -> CorePrepPgmConfig
initCorePrepPgmConfig ic dflags = CorePrepPgmConfig
{ cpPgm_endPassConfig = initEndPassConfig ic dflags
, cpPgm_generateDebugInfo = needSourceNotes dflags
}