[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