id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,os,architecture,failure,difficulty,testcase,blockedby,blocking,related
5654,Profiling semantics bug,simonmar,simonmar,"GHC doesn't quite implement the new cost-centre stack semantics correctly. e.g.

{{{
{-# NOINLINE f #-}
f :: Int -> Int
f = {-# SCC f #-} g

{-# NOINLINE g #-}
g :: Int -> Int
g x = {-# SCC g #-} x + 1

main = print (f 3)
}}}

What we want is

{{{
 CAF        Main                    106           0    0.0    0.7     0.0   21.7
  f         Main                    201           1    0.0    0.0     0.0    0.0
  main      Main                    200           1    0.0   20.9     0.0   21.0
   f        Main                    202           0    0.0    0.0     0.0    0.1
    g       Main                    203           1    0.0    0.1     0.0    0.1
}}}

but we get

{{{
 CAF        Main                    106           0    0.0    0.7     0.0   21.6
  f         Main                    201           1    0.0    0.0     0.0    0.0
  main      Main                    200           1    0.0   20.9     0.0   20.9
   g        Main                    202           1    0.0    0.0     0.0    0.0
}}}

The original flat CC profiler used to use `IND_PERM` indirections to handle this kind of thing, but we aren't doing that now.",bug,new,low,7.6.2,Profiling,7.2.1,,,ezyang@…,Unknown/Multiple,Unknown/Multiple,None/Unknown,,profiling/should_run/scc004,,,
