projects
/
ghc-hetmet.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
8a2809c
)
FIX #1472 (also #249, which was not completely fixed previously): -caf-all bugs
author
Simon Marlow
<simonmar@microsoft.com>
Sat, 7 Jul 2007 19:21:02 +0000
(19:21 +0000)
committer
Simon Marlow
<simonmar@microsoft.com>
Sat, 7 Jul 2007 19:21:02 +0000
(19:21 +0000)
compiler/profiling/SCCfinal.lhs
patch
|
blob
|
history
diff --git
a/compiler/profiling/SCCfinal.lhs
b/compiler/profiling/SCCfinal.lhs
index
601aff4
..
256984a
100644
(file)
--- a/
compiler/profiling/SCCfinal.lhs
+++ b/
compiler/profiling/SCCfinal.lhs
@@
-136,7
+136,7
@@
stgMassageForProfiling this_pkg mod_name us stg_binds
modl | Just m <- nameModule_maybe (idName binder) = m
| otherwise = mod_name
in
modl | Just m <- nameModule_maybe (idName binder) = m
| otherwise = mod_name
in
- collectCC cc `thenMM_`
+ collectNewCC cc `thenMM_`
collectCCS ccs `thenMM_`
returnMM ccs
else
collectCCS ccs `thenMM_`
returnMM ccs
else
@@
-417,6
+417,14
@@
collectCC cc mod_name scope_cc us ids (local_ccs, extern_ccs, ccss)
else -- must declare it "extern"
((local_ccs, cc : extern_ccs, ccss), ())
else -- must declare it "extern"
((local_ccs, cc : extern_ccs, ccss), ())
+-- Version of collectCC used when we definitely want to declare this
+-- CC as local, even if its module name is not the same as the current
+-- module name (eg. the special :Main module) see bug #249, #1472,
+-- test prof001,prof002.
+collectNewCC :: CostCentre -> MassageM ()
+collectNewCC cc mod_name scope_cc us ids (local_ccs, extern_ccs, ccss)
+ = ((cc : local_ccs, extern_ccs, ccss), ())
+
collectCCS :: CostCentreStack -> MassageM ()
collectCCS ccs mod_name scope_cc us ids (local_ccs, extern_ccs, ccss)
collectCCS :: CostCentreStack -> MassageM ()
collectCCS ccs mod_name scope_cc us ids (local_ccs, extern_ccs, ccss)