[GHC] #13426: compile-time memory-usage regression for DynFlags between GHC 8.0 and GHC 8.2

GHC ghc-devs at haskell.org
Tue Apr 4 20:38:58 UTC 2017


#13426: compile-time memory-usage regression for DynFlags between GHC 8.0 and GHC
8.2
-------------------------------------+-------------------------------------
        Reporter:  hvr               |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  high              |            Milestone:  8.2.1
       Component:  Compiler          |              Version:  8.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  performance bug                    |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):  Phab:D3399,
       Wiki Page:                    |  Phab:D3400, Phab:D3421
-------------------------------------+-------------------------------------
Changes (by rwbarton):

 * differential:  Phab:D3399, Phab:D3400 => Phab:D3399, Phab:D3400,
                   Phab:D3421


Comment:

 Yes, I'm not sure what happened here but one of the parts of the patch
 seems to have been lost in a rebase. Thanks for catching this Simon!

 > Moreover, presumably the commit you did make (in `rebuildCase`)
 presumably does help something substantially, or you would not have done
 it (esp given its equivocal effect on other perf tests). But neither the
 commit message, nor (more importantly) the comment in the code, says what!
 `DynFlags` perhaps? Please say, so that someone wondering if they can now
 take it out knows what they have to test against.

 Yes, good point. Together with the missing part of the patch, it reduces
 the space usage while compiling `DynFlags` by at least a factor of 2.
 Unfortunately I was unable to construct a simpler test case that shows a
 similarly dramatic improvement, or diagnose exactly what is so special
 about `DynFlags`... maybe I'll try again to come up with a perf test case,
 even if the effect is not as dramatic as for `DynFlags`.

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


More information about the ghc-tickets mailing list