[GHC] #12367: Commit adding instances to GHC.Generics regression compiler performance

GHC ghc-devs at haskell.org
Mon Jul 11 13:56:22 UTC 2016


#12367: Commit adding instances to GHC.Generics regression compiler performance
-------------------------------------+-------------------------------------
        Reporter:  bgamari           |                Owner:  bgamari
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:  8.0.2
       Component:  Compiler          |              Version:  8.0.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):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by bgamari):

 To characterize this further I chose a representative module from nofib
 (the `Psfuns` module of the `reptile` test) and compiled it with
 6319a8cf79cc1f1e25220113149ab48e5083321b (the parent of the change) and
 673efccb3b348e9daf23d9e65460691bbea8586e built with ticky enabled.

 The largest changes are summarized below.

 ||= Change     =||= alloc A  =||= alloc B  =||= name
 =||
 || +2898040.0 || 13460520 || 16358560 || `$wa5 (ghc-8.1:Encoding)`
 ||
 || +2247360.0 || 6593640  || 8841000  || ` (ghc-8.1:Unique.mkUnique)`
 ||
 || +1976688.0 || 8486408  || 10463096 || `a4 (ghc-8.1:IOEnv)`
 ||
 || +1734288.0 || 5736672  || 7470960  || ` (ghc-8.1:FastString.uniq)`
 ||
 || +1632784.0 || 5415504  || 7048288  || `$cgetUnique2 (ghc-8.1:Unique)`
 ||
 || +1258016.0 || 3014864  || 4272880  || ` (ghc-8.1:Binary.getByte1)`
 ||
 || +1229472.0 || 4354032  || 5583504  || `$ccompare1 (ghc-8.1:Module)`
 ||
 || +1210656.0 || 3661152  || 4871808  || `$ccompare (ghc-8.1:Module)`
 ||
 || +1083360.0 || 2529840  || 3613200  || `$cget6 (ghc-8.1:IfaceType)`
 ||
 || +994560.0  || 2327440  || 3322000  || `$wa1 (ghc-8.1:BinIface.)`
 ||
 || +960600.0  || 2005200  || 2965800  || `$cget5 (ghc-8.1:IfaceType)`
 ||
 || +946824.0  || 2020656  || 2967480  || `$wa3 (ghc-8.1:BinIface)`
 ||
 || +558992.0  || 1389872  || 1948864  || `$wa8 (ghc-8.1:Binary.)`
 ||
 || +558200.0  || 1193720  || 1751920  || `$cget1 (ghc-8.1:IfaceType)`
 ||
 || +551320.0  || 1149720  || 1701040  || `$cget2 (ghc-8.1:IfaceType)`
 ||
 || +473088.0  || 1268960  || 1742048  || `
 (ghc-8.1:TysWiredIn.isBuiltInOcc_maybe)`                      ||
 || +318136.0  || 1234352  || 1552488  || `a5 (ghc-8.1:IOEnv)`
 ||
 || +305280.0  || 4939520  || 5244800  || ` (ghc-8.1:UniqFM.lookupUFM)`
 ||
 || +297216.0  || 691920   || 989136   || `
 (ghc-8.1:UniqFM.lookupUFM_Directly)`                          ||
 || +286200.0  || 889680   || 1175880  || `$wa17 (ghc-8.1:Binary.)`
 ||
 || +253952.0  || 560000   || 813952   || `a18 (ghc-8.1:BinIface)`
 ||
 || +217992.0  || 1167832  || 1385824  || `$wa (ghc-8.1:FastString.)`
 ||
 || +187792.0  || 595672   || 783464   || ` (ghc-8.1:IfaceEnv.lookupOrig)`
 ||
 || +173720.0  || 566160   || 739880   || ` (ghc-8.1:FastString.unpackFS)`
 ||
 || +173504.0  || 397760   || 571264   || `$wa11 (ghc-8.1:Binary.)`
 ||
 || +170560.0  || 694272   || 864832   || `a (ghc-8.1:IOEnv)`
 ||
 || +148992.0  || 3369216  || 3518208  || `a23 (ghc-8.1:UniqFM)`
 ||
 || +137376.0  || 456528   || 593904   || `
 (ghc-8.1:Unique.mkVarOccUnique)`                              ||
 || +134320.0  || 2260808  || 2395128  || ` (ghc-8.1:DynFlags.dopt)`
 ||
 || +133448.0  || 413840   || 547288   || `$wxs (ghc-8.1:Binary)`
 ||
 || +117936.0  || 363664   || 481600   || `
 (ghc-8.1:IfaceEnv.extendNameCache)`                           ||
 || +117544.0  || 401520   || 519064   || ` (ghc-8.1:Name.mkExternalName)`
 ||
 || +114240.0  || 265632   || 379872   || `$fBinary(,)`1 (ghc-8.1:Binary.)
 ||
 || +110992.0  || 243824   || 354816   || `$wxs (ghc-8.1:BinIface)`
 ||
 || +108480.0  || 222640   || 331120   || `$cget (ghc-8.1:TyCoRep)`
 ||
 || +108480.0  || 222640   || 331120   || `$cget4 (ghc-8.1:IfaceType)`
 ||
 || +106920.0  || 473448   || 580368   || `$wa83 (ghc-8.1:Binary)`
 ||
 || +105888.0  || 229248   || 335136   || ` (ghc-8.1:TcRnMonad.forkM)`
 ||
 || +104232.0  || 340752   || 444984   || `$wa2 (ghc-8.1:Encoding.)`
 ||
 || +103200.0  || 385296   || 488496   || `
 (ghc-8.1:UniqSupply.takeUniqFromSupply)`                      ||
 || +98576.0   || 263312   || 361888   || `$wa6 (ghc-8.1:Binary.)`
 ||
 || +93600.0   || 197040   || 290640   || `$cget1 (ghc-8.1:OccName)`
 ||

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


More information about the ghc-tickets mailing list