[GHC] #14003: Allow more worker arguments in SpecConstr

GHC ghc-devs at haskell.org
Fri Jul 21 21:05:57 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:  #11565            |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------
Changes (by bgamari):

 * related:   => #11565


Comment:

 >  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.

 Where is this `wstream_Strng2_V_1` function that you refer to? It would be
 helpful to see a concrete example.

 > And no, 8.0.2 fully specialises irrespective of the number of worker
 arguments. Specialisation in 8.2 depends on the number of arguments the
 pattern to be specialised has.

 This change is due to two causes:
  * a48de37dcca98e7d477040b0ed298bcd1b3ab303, which fixes #11565 where
 `-fmax-worker-args` was simply ignored
  * f93c363fab1ac8ce6f0b474f5967b0b097995827, which extended the reach of
 `-fmax-worker-args` to include SpecConstr in order to improve compiler
 performance.

 Perhaps you want the SpecConstr limit to be independent from the
 worker/wrapper limit?

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


More information about the ghc-tickets mailing list