summaryrefslogtreecommitdiff
path: root/compiler/codeGen/CgInfoTbls.hs
diff options
context:
space:
mode:
authorMax Bolingbroke <batterseapower@hotmail.com>2011-07-06 18:01:02 +0100
committerMax Bolingbroke <batterseapower@hotmail.com>2011-07-07 08:44:20 +0100
commitdd391759500ab2b6abd23d502ade7ff8946c780f (patch)
treeccb4c968c5aea99524d4a8a2b9e94d400e14826a /compiler/codeGen/CgInfoTbls.hs
parent41ca0b8dcb91cf02f389b3d099c33fbdf009312c (diff)
downloadhaskell-dd391759500ab2b6abd23d502ade7ff8946c780f.tar.gz
Don't export the _info symbol for the data constructor worker bindings
This is safe because GHC never generates a fast call to a data constructor worker: if the call is seen statically it will be eta-expanded and the allocation of the data will be inlined. We still need to export the _closure in case the constructor is used in an unapplied fashion.
Diffstat (limited to 'compiler/codeGen/CgInfoTbls.hs')
-rw-r--r--compiler/codeGen/CgInfoTbls.hs6
1 files changed, 3 insertions, 3 deletions
diff --git a/compiler/codeGen/CgInfoTbls.hs b/compiler/codeGen/CgInfoTbls.hs
index 2745832227..093b9ffaab 100644
--- a/compiler/codeGen/CgInfoTbls.hs
+++ b/compiler/codeGen/CgInfoTbls.hs
@@ -84,12 +84,12 @@ mkCmmInfo cl_info = do
info = ConstrInfo (ptrs, nptrs)
(fromIntegral (dataConTagZ con))
conName
- return $ CmmInfo gc_target Nothing (CmmInfoTable False prof cl_type info)
+ return $ CmmInfo gc_target Nothing (CmmInfoTable False False prof cl_type info)
ClosureInfo { closureName = name,
closureLFInfo = lf_info,
closureSRT = srt } ->
- return $ CmmInfo gc_target Nothing (CmmInfoTable False prof cl_type info)
+ return $ CmmInfo gc_target Nothing (CmmInfoTable (closureInfoLocal cl_info) False prof cl_type info)
where
info =
case lf_info of
@@ -142,7 +142,7 @@ emitReturnTarget name stmts
; let info = CmmInfo
gc_target
Nothing
- (CmmInfoTable False
+ (CmmInfoTable False False
(ProfilingInfo zeroCLit zeroCLit)
rET_SMALL -- cmmToRawCmm may convert it to rET_BIG
(ContInfo frame srt_info))