projects
/
ghc-hetmet.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Whitespace-only in rts/Linker.c
[ghc-hetmet.git]
/
compiler
/
stgSyn
/
CoreToStg.lhs
diff --git
a/compiler/stgSyn/CoreToStg.lhs
b/compiler/stgSyn/CoreToStg.lhs
index
54895aa
..
2059937
100644
(file)
--- a/
compiler/stgSyn/CoreToStg.lhs
+++ b/
compiler/stgSyn/CoreToStg.lhs
@@
-544,13
+544,17
@@
coreToStgApp _ f args = do
TickBoxOpId {} -> pprPanic "coreToStg TickBox" $ ppr (f,args')
_other -> StgApp f args'
TickBoxOpId {} -> pprPanic "coreToStg TickBox" $ ppr (f,args')
_other -> StgApp f args'
-
- return (
- app,
- fun_fvs `unionFVInfo` args_fvs,
- fun_escs `unionVarSet` (getFVSet args_fvs)
+ fvs = fun_fvs `unionFVInfo` args_fvs
+ vars = fun_escs `unionVarSet` (getFVSet args_fvs)
-- All the free vars of the args are disqualified
-- from being let-no-escaped.
-- All the free vars of the args are disqualified
-- from being let-no-escaped.
+
+ -- Forcing these fixes a leak in the code generator, noticed while
+ -- profiling for trac #4367
+ app `seq` fvs `seq` seqVarSet vars `seq` return (
+ app,
+ fvs,
+ vars
)
)
@@
-770,7
+774,7
@@
mkStgRhs rhs_fvs srt binder_info rhs
assumptions (namely that they will be entered only once).
upd_flag | isPAP env rhs = ReEntrant
assumptions (namely that they will be entered only once).
upd_flag | isPAP env rhs = ReEntrant
- | otherwise = Updatable
+ | otherwise = Updatable
-}
{- ToDo:
-}
{- ToDo: