
#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