diff options
| author | Ian Lynagh <igloo@earth.li> | 2012-06-12 00:46:49 +0100 |
|---|---|---|
| committer | Ian Lynagh <igloo@earth.li> | 2012-06-12 00:46:49 +0100 |
| commit | 8685576a3a1802e98480d74beecf7c8450363907 (patch) | |
| tree | b19714a298d7e61fd3cc893915e400c66bc129fa /compiler/codeGen | |
| parent | a6ec94937f9456f5c7ee122b088f37048bf8b265 (diff) | |
| download | haskell-8685576a3a1802e98480d74beecf7c8450363907.tar.gz | |
Pass DynFlags down to showSDocDump
To help with this, we now also pass DynFlags around inside the SpecM
monad.
Diffstat (limited to 'compiler/codeGen')
| -rw-r--r-- | compiler/codeGen/StgCmmBind.hs | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/compiler/codeGen/StgCmmBind.hs b/compiler/codeGen/StgCmmBind.hs index 3ae25b4652..4f9d1b507c 100644 --- a/compiler/codeGen/StgCmmBind.hs +++ b/compiler/codeGen/StgCmmBind.hs @@ -79,7 +79,8 @@ cgTopRhsClosure id ccs _ upd_flag srt args body = do ; lf_info <- mkClosureLFInfo id TopLevel [] upd_flag args ; srt_info <- getSRTInfo srt ; mod_name <- getModuleName - ; let descr = closureDescription mod_name name + ; dflags <- getDynFlags + ; let descr = closureDescription dflags mod_name name closure_info = mkClosureInfo True id lf_info 0 0 srt_info descr closure_label = mkLocalClosureLabel name (idCafInfo id) cg_id_info = litIdInfo id lf_info (CmmLabel closure_label) @@ -288,8 +289,9 @@ mkRhsClosure bndr cc _ fvs upd_flag srt args body ; lf_info <- mkClosureLFInfo bndr NotTopLevel fvs upd_flag args ; mod_name <- getModuleName ; c_srt <- getSRTInfo srt + ; dflags <- getDynFlags ; let name = idName bndr - descr = closureDescription mod_name name + descr = closureDescription dflags mod_name name fv_details :: [(NonVoid Id, VirtualHpOffset)] (tot_wds, ptr_wds, fv_details) = mkVirtHeapOffsets (isLFThunk lf_info) @@ -336,10 +338,11 @@ cgStdThunk bndr _cc _bndr_info _body lf_info payload = do -- AHA! A STANDARD-FORM THUNK { -- LAY OUT THE OBJECT mod_name <- getModuleName + ; dflags <- getDynFlags ; let (tot_wds, ptr_wds, payload_w_offsets) = mkVirtHeapOffsets (isLFThunk lf_info) (addArgReps payload) - descr = closureDescription mod_name (idName bndr) + descr = closureDescription dflags mod_name (idName bndr) closure_info = mkClosureInfo False -- Not static bndr lf_info tot_wds ptr_wds NoC_SRT -- No SRT for a std-form closure @@ -685,13 +688,14 @@ link_caf _is_upd = do -- name of the data constructor itself. Otherwise it is determined by -- @closureDescription@ from the let binding information. -closureDescription :: Module -- Module +closureDescription :: DynFlags + -> Module -- Module -> Name -- Id of closure binding -> String -- Not called for StgRhsCon which have global info tables built in -- CgConTbls.lhs with a description generated from the data constructor -closureDescription mod_name name - = showSDocDump (char '<' <> +closureDescription dflags mod_name name + = showSDocDump dflags (char '<' <> (if isExternalName name then ppr name -- ppr will include the module name prefix else pprModule mod_name <> char '.' <> ppr name) <> |
