[GHC] #8275: Loopification breaks profiling

GHC ghc-devs at haskell.org
Thu Oct 17 12:34:29 UTC 2013


#8275: Loopification breaks profiling
----------------------------------------+----------------------------------
        Reporter:  jstolarek            |            Owner:  jstolarek
            Type:  bug                  |           Status:  new
        Priority:  high                 |        Milestone:  7.8.1
       Component:  Profiling            |          Version:  7.7
      Resolution:                       |         Keywords:
Operating System:  Unknown/Multiple     |     Architecture:
 Type of failure:  Building GHC failed  |  Unknown/Multiple
       Test Case:                       |       Difficulty:  Unknown
        Blocking:  8298                 |       Blocked By:
                                        |  Related Tickets:
----------------------------------------+----------------------------------

Comment (by jstolarek):

 I believe I know the reason for duplicating the stack check. There is at
 least one bug in !CmmContFlowOpt module. Consider this:

 {{{
 L1: goto L2
 L2: whatever
 L3: goto L1
 }}}

 We are processing blocks from the end. When we reach L3 first guard in
 `maybe_concat` function (!CmmContFlowOpt.hs, line 123) will turn that
 blocks into:

 {{{
 L1: goto L2
 L2: whatever
 L3: goto L2
 }}}

 However, the number of predecessors of L2 block is not updated because
 `backEdges` is computed once before we run `maybe_concat` and is not
 updated when we make changes to the block structure.

 Another issue, which I have not yet encountered but I believe may arise as
 well, comes from the fact that we may map one label to a different one,
 but again we don't that take into account when determining the number of
 predecessors. I wrote a fix for that sometime in July, but I did not
 merged into HEAD - I guess I'll do that now.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/8275#comment:21>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list