[GHC] #13220: Performance regressions in testsuite from join points

GHC ghc-devs at haskell.org
Sat Feb 11 18:41:43 UTC 2017


#13220: Performance regressions in testsuite from join points
-------------------------------------+-------------------------------------
        Reporter:  lukemaurer        |                Owner:  lukemaurer
            Type:  bug               |               Status:  new
        Priority:  highest           |            Milestone:  8.2.1
       Component:  Compiler          |              Version:  8.1
      Resolution:                    |             Keywords:  JoinPoints
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by rwbarton):

 There are two issues here.

 * Core Lint is expensive, and join points made it more expensive. For
 example `HsExpr` took twice as long to compile with `-O -dcore-lint` as
 with `-O`, before join points; and three times as long, after.

  I'm still waiting on some builds to finish, but I suspect most of the 13%
 build time regression is attributable to extra Core Lint checks added with
 join points. Just looking at the code, `markAllJoinsBad` looks somewhat
 expensive; and it is called on the right hand side of every binding, the
 body of every lambda, the scrutinee of every case, etc.

  This doesn't affect normal users, who won't use `-dcore-lint`.

 * Normal compiles (without `-dcore-lint`) are also slightly slower after
 join points. I'm working on getting better data on this and looking for
 outlier modules where the build time went up a lot. At Simon's suggestion,
 I looked at program sizes but they went up only a tiny bit on average (<
 1%). The number of simplifier iterations also increased a tiny bit (< 1%).

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


More information about the ghc-tickets mailing list