[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