summaryrefslogtreecommitdiff
path: root/compiler/GHC/Driver/Main.hs
diff options
context:
space:
mode:
Diffstat (limited to 'compiler/GHC/Driver/Main.hs')
-rw-r--r--compiler/GHC/Driver/Main.hs27
1 files changed, 14 insertions, 13 deletions
diff --git a/compiler/GHC/Driver/Main.hs b/compiler/GHC/Driver/Main.hs
index a743e0f1ba..b2a0f887e0 100644
--- a/compiler/GHC/Driver/Main.hs
+++ b/compiler/GHC/Driver/Main.hs
@@ -149,6 +149,7 @@ import GHC.Runtime.Loader ( initializePlugins )
import GHC.StgToCmm.Types (CgInfos (..), ModuleLFInfos)
import GHC.Driver.Session
+import GHC.Driver.Backend
import GHC.Utils.Error
import GHC.Utils.Outputable
@@ -784,7 +785,7 @@ finish :: ModSummary
finish summary tc_result mb_old_hash = do
hsc_env <- getHscEnv
let dflags = hsc_dflags hsc_env
- target = hscTarget dflags
+ bcknd = backend dflags
hsc_src = ms_hsc_src summary
-- Desugar, if appropriate
@@ -802,7 +803,7 @@ finish summary tc_result mb_old_hash = do
-- interface file.
case mb_desugar of
-- Just cause we desugared doesn't mean we are generating code, see above.
- Just desugared_guts | target /= HscNothing -> do
+ Just desugared_guts | bcknd /= NoBackend -> do
plugins <- liftIO $ readIORef (tcg_th_coreplugins tc_result)
simplified_guts <- hscSimplify' plugins desugared_guts
@@ -830,11 +831,12 @@ finish summary tc_result mb_old_hash = do
liftIO $ hscMaybeWriteIface dflags iface mb_old_iface_hash (ms_location summary)
- return $ case (target, hsc_src) of
- (HscNothing, _) -> HscNotGeneratingCode iface details
- (_, HsBootFile) -> HscUpdateBoot iface details
- (_, HsigFile) -> HscUpdateSig iface details
- _ -> panic "finish"
+ return $ case bcknd of
+ NoBackend -> HscNotGeneratingCode iface details
+ _ -> case hsc_src of
+ HsBootFile -> HscUpdateBoot iface details
+ HsigFile -> HscUpdateSig iface details
+ _ -> panic "finish"
{-
Note [Writing interface files]
@@ -853,10 +855,10 @@ hscMaybeWriteIface, but only once per compilation (twice with dynamic-too).
hscMaybeWriteIface :: DynFlags -> ModIface -> Maybe Fingerprint -> ModLocation -> IO ()
hscMaybeWriteIface dflags iface old_iface location = do
let force_write_interface = gopt Opt_WriteInterface dflags
- write_interface = case hscTarget dflags of
- HscNothing -> False
- HscInterpreted -> False
- _ -> True
+ write_interface = case backend dflags of
+ NoBackend -> False
+ Interpreter -> False
+ _ -> True
no_change = old_iface == Just (mi_iface_hash (mi_final_exts iface))
when (write_interface || force_write_interface) $
@@ -901,8 +903,7 @@ batchMsg hsc_env mod_index recomp mod_summary =
showMsg msg reason =
compilationProgressMsg dflags $
(showModuleIndex mod_index ++
- msg ++ showModMsg dflags (hscTarget dflags)
- (recompileRequired recomp) mod_summary)
+ msg ++ showModMsg dflags (recompileRequired recomp) mod_summary)
++ reason
--------------------------------------------------------------