[GHC] #11735: Optimize coercionKind

GHC ghc-devs at haskell.org
Wed Jan 24 17:30:09 UTC 2018


#11735: Optimize coercionKind
-------------------------------------+-------------------------------------
        Reporter:  goldfire          |                Owner:  (none)
            Type:  task              |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  7.10.3
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  performance bug                    |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by goldfire):

 I'm dubious of the `coercionRole` refactor, as it undoes a refactoring I
 put in a few years ago, for performance reasons. The problem is that
 `coercionRole` depends on `coercionKind` in the `NthCo` case. So, if these
 functions are separated, then `coercionRole` recurs via both
 `coercionKind` and `coercionRole` sometimes, causing a lot of extra work.

 Note that a standalone `coercionKind` does exist, also for performance
 reasons.

 To be clear, I'm not doubting your numbers on your particular test case,
 but I'm not sure how far this would generalize. That said, the degree to
 which your case improved suggests there's some other inefficiency here.
 Maybe it's all the tuples? If we make them unboxed, does that fix the
 problem?

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


More information about the ghc-tickets mailing list