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

GHC ghc-devs at haskell.org
Thu Jul 20 23:13:03 UTC 2017


#14003: Allow more worker arguments in SpecConstr
-------------------------------------+-------------------------------------
           Reporter:  choenerzs      |             Owner:  (none)
               Type:  feature        |            Status:  new
  request                            |
           Priority:  normal         |         Milestone:  8.2.2
          Component:  Compiler       |           Version:  8.2.1-rc3
           Keywords:  JoinPoints,    |  Operating System:  Unknown/Multiple
  Fusion                             |
       Architecture:                 |   Type of failure:  Runtime
  Unknown/Multiple                   |  performance bug
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 Starting with GHC 8.2 (rc1 -- head) I noticed that the SpecConstr pass
 does not always optimize completely with SpecConstr-heavy code.
 Setting ```-fmax-worker-args=100``` leads to complete specialization
 again.

 However, given that code annotated with ```SPEC``` should be optimized
 until no more ```SPEC``` arguments are alive, shouldn't
 ```callToNewPats``` in ```compiler/specialise/SpecConstr.hs``` specialize
 *irrespective* of the size of the worker argument list?

 Code that actually fails to specialize is fairly large, hence no test case
 -- though I have some files with core output showing insufficient
 specialization.

 (I'd be willing to write a patch for this)

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


More information about the ghc-tickets mailing list