summaryrefslogtreecommitdiff
path: root/compiler/main/DriverPipeline.hs
diff options
context:
space:
mode:
authorÖmer Sinan Ağacan <omeragacan@gmail.com>2019-11-11 14:15:55 +0300
committerMarge Bot <ben+marge-bot@smart-cactus.org>2019-11-13 07:09:18 -0500
commita06cfb59d21c9cf6f53a8b1acedb075988a6c5ca (patch)
tree6ca56b79ddc7f534164444bfebc1dab44f60f83b /compiler/main/DriverPipeline.hs
parent9a939a6cdfb2a1357f9990af329096dff6b5be5c (diff)
downloadhaskell-a06cfb59d21c9cf6f53a8b1acedb075988a6c5ca.tar.gz
Only pass mod_location with HscRecomp instead of the entire ModSummary
HscRecomp users only need the ModLocation of the module being compiled, so only pass that to users instead of the entire ModSummary Metric Decrease: T4801
Diffstat (limited to 'compiler/main/DriverPipeline.hs')
-rw-r--r--compiler/main/DriverPipeline.hs13
1 files changed, 6 insertions, 7 deletions
diff --git a/compiler/main/DriverPipeline.hs b/compiler/main/DriverPipeline.hs
index 4d418b99fe..ff0186a56b 100644
--- a/compiler/main/DriverPipeline.hs
+++ b/compiler/main/DriverPipeline.hs
@@ -219,16 +219,16 @@ compileOne' m_tc_result mHscMessage
let !linkable = LM o_time this_mod [DotO object_filename]
return $! HomeModInfo iface hmi_details (Just linkable)
(HscRecomp { hscs_guts = cgguts,
- hscs_summary = summary,
+ hscs_mod_location = mod_location,
hscs_partial_iface = partial_iface,
hscs_old_iface_hash = mb_old_iface_hash,
hscs_iface_dflags = iface_dflags }, HscInterpreted) -> do
-- In interpreted mode the regular codeGen backend is not run so we
-- generate a interface without codeGen info.
final_iface <- mkFullIface hsc_env'{hsc_dflags=iface_dflags} partial_iface
- liftIO $ hscMaybeWriteIface dflags final_iface mb_old_iface_hash (ms_location summary)
+ liftIO $ hscMaybeWriteIface dflags final_iface mb_old_iface_hash mod_location
- (hasStub, comp_bc, spt_entries) <- hscInteractive hsc_env' cgguts summary
+ (hasStub, comp_bc, spt_entries) <- hscInteractive hsc_env' cgguts mod_location
stub_o <- case hasStub of
Nothing -> return []
@@ -1176,7 +1176,7 @@ runPhase (HscOut src_flavour mod_name result) _ dflags = do
liftIO $ compileEmptyStub dflags hsc_env' basename location mod_name
return (RealPhase StopLn, o_file)
HscRecomp { hscs_guts = cgguts,
- hscs_summary = mod_summary,
+ hscs_mod_location = mod_location,
hscs_partial_iface = partial_iface,
hscs_old_iface_hash = mb_old_iface_hash,
hscs_iface_dflags = iface_dflags }
@@ -1185,15 +1185,14 @@ runPhase (HscOut src_flavour mod_name result) _ dflags = do
PipeState{hsc_env=hsc_env'} <- getPipeState
(outputFilename, mStub, foreign_files) <- liftIO $
- hscGenHardCode hsc_env' cgguts mod_summary output_fn
+ hscGenHardCode hsc_env' cgguts mod_location output_fn
final_iface <- liftIO (mkFullIface hsc_env'{hsc_dflags=iface_dflags} partial_iface)
setIface final_iface
-- See Note [Writing interface files]
let if_dflags = dflags `gopt_unset` Opt_BuildDynamicToo
- liftIO $ hscMaybeWriteIface if_dflags final_iface mb_old_iface_hash
- (ms_location mod_summary)
+ liftIO $ hscMaybeWriteIface if_dflags final_iface mb_old_iface_hash mod_location
stub_o <- liftIO (mapM (compileStub hsc_env') mStub)
foreign_os <- liftIO $