[GHC] #14068: Loopification using join points

GHC ghc-devs at haskell.org
Thu Jan 25 13:58:09 UTC 2018


#14068: Loopification using join points
-------------------------------------+-------------------------------------
        Reporter:  nomeata           |                Owner:  nomeata
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.0.1
      Resolution:                    |             Keywords:  JoinPoints
Operating System:  Unknown/Multiple  |         Architecture:
                                     |  Unknown/Multiple
 Type of failure:  None/Unknown      |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:  #13966 #14067     |  Differential Rev(s):  Phab:D3811
       Wiki Page:                    |
-------------------------------------+-------------------------------------
Changes (by nomeata):

 * cc: sanjitk@… (added)


Comment:

 Loopification per se works, but it causes huge performance swings in both
 directions; not because of loopification itself, but because other parts
 of the compiler now treat the code differently. The current
 (disheartening) stats are at
 https://perf.haskell.org/ghc/#compare/af0aea9c3d5f68f2694bd7b6380788764aa3f1ff/f04fdcbc51fffa36619157defb105dae461da4b7
 (this URL might stop working in the future when `wip/T14068` is rebased.)

 Without “Prevent inlining of loopified programs”, we now start inlining
 stuff that used to be recursive, which is not always a win, it seems. With
 this patch, we prevent that, but now other things don’t work as well as
 they used to.

 I lost steam in the fall tracking down all the regressions, but I now have
 a master student at Penn, Sanjit Kalapatapu, who is helping to track down
 them. Currently, he is looking into `SpecConstr`, which seems to stopped
 doing its thing (maybe because of the no-inline marker that we add…). I
 hope that with him there will be progress again, but I expect it to be
 slow progress.

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


More information about the ghc-tickets mailing list