#5654: Profiling semantics bug
---------------------------------+------------------------------------------
    Reporter:  simonmar          |        Owner:  simonmar                   
        Type:  bug               |       Status:  new                        
    Priority:  normal            |    Milestone:  7.4.1                      
   Component:  Profiling         |      Version:  7.2.1                      
    Keywords:                    |     Testcase:  profiling/should_run/scc004
   Blockedby:                    |   Difficulty:                             
          Os:  Unknown/Multiple  |     Blocking:                             
Architecture:  Unknown/Multiple  |      Failure:  None/Unknown               
---------------------------------+------------------------------------------
 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.

-- 
Ticket URL: <http://hackage.haskell.org/trac/ghc/ticket/5654>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler

_______________________________________________
Glasgow-haskell-bugs mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/glasgow-haskell-bugs

Reply via email to