[GHC] #7258: Compiling DynFlags is jolly slow

GHC ghc-devs at haskell.org
Thu Oct 19 15:51:26 UTC 2017


#7258: Compiling DynFlags is jolly slow
-------------------------------------+-------------------------------------
        Reporter:  simonpj           |                Owner:  simonpj
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  7.6.1
      Resolution:                    |             Keywords:  deriving-perf
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 tdammers):

 A few things I have tried that do not seem to make a difference:

 - Pre-filtering the `assig` list to retain only the "interesting" entries
 (`InReg` and `InBoth`), and passing the filtered list around separately;
 while in theory this would get rid of unnecessary list filtering passes,
 in practice it seems that the overhead of maintaining a second list in
 parallel cancels out anything we may have won
 - Collecting the `InReg` and `InBoth` candidate lists in a single pass.
 The idea behind this was that we would visit each list entry just once,
 putting it in one bin or the other, rather than traversing the list of
 candidates twice. In practice however there is no measurable performance
 benefit.
 - Merging the filtering predicates (checking whether a candidate is
 `InReg` or `InBoth`, and checking whether the register class matches); the
 idea here was that doing both checks in one pass might help, but it
 doesn't, the performance is exactly the same.

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


More information about the ghc-tickets mailing list