[GHC] #14003: Allow more worker arguments in SpecConstr
GHC
ghc-devs at haskell.org
Fri Jul 21 11:01:46 UTC 2017
#14003: Allow more worker arguments in SpecConstr
-------------------------------------+-------------------------------------
Reporter: choenerzs | Owner: (none)
Type: feature request | Status: new
Priority: normal | Milestone: 8.2.2
Component: Compiler | Version: 8.2.1-rc3
Resolution: | Keywords: JoinPoints,
| Fusion
Operating System: Unknown/Multiple | Architecture:
Type of failure: Runtime | Unknown/Multiple
performance bug | Test Case:
Blocked By: | Blocking:
Related Tickets: | Differential Rev(s):
Wiki Page: |
-------------------------------------+-------------------------------------
Comment (by choenerzs):
I'm using a lot of intermediate data constructors for control flow which
are all eliminated if SpecConstr runs to completion.
The ```100``` for W/W was only to provide a ceiling I'm not likely to bump
against. However, this is part of the problem, in that the user of the
library now needs to think about which value to give W/W.
The function wstream_Strng2_V_1 becomes more than x10 faster if specconstr
runs to completion and allocates *a lot* less (in my allocation benchmark
it is 48 bytes versus ~ 600 Kilo-bytes . It has arity 18 after full
SpecConstr.
In GHC 8.0.2 and earlier, I did not have to change the maximal number of
W/W arguments for SpecConstr.
The core output for v1-slow (W/W = 10) and v1-fast (W/W = 100) is given as
attachments.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14003#comment:2>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list