[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