[GHC] #9961: compile-time performance regression compiling genprimcode

GHC ghc-devs at haskell.org
Tue Jan 6 22:47:09 UTC 2015


#9961: compile-time performance regression compiling genprimcode
-------------------------------------+-------------------------------------
        Reporter:  hvr               |                   Owner:  simonpj
            Type:  bug               |                  Status:  new
        Priority:  normal            |               Milestone:  7.10.1
       Component:  Compiler          |                 Version:  7.10.1-rc1
      Resolution:                    |                Keywords:
Operating System:  Unknown/Multiple  |            Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  performance bug                    |               Test Case:
      Blocked By:                    |                Blocking:
 Related Tickets:                    |  Differential Revisions:
-------------------------------------+-------------------------------------

Comment (by hvr):

 Have you tried my exact same steps?

 Btw, tomorrow I can throw a `prof`-compiled GHC at `Lexer.hs`, if you tell
 me exactly what kind of output you're interested in...

 Here's the equivalent output to comment:6 for GHC 7.8.4:

 {{{
 0.003879 Glasgow Haskell Compiler, Version 7.8.4, stage 2 booted by GHC
 version 7.6.3
 0.003990 Using binary package database:
 /opt/ghc/7.8.4/lib/ghc-7.8.4/package.conf.d/package.cache
 0.013057 Using binary package database:
 /home/hvr/.ghc/x86_64-linux-7.8.4/package.conf.d/package.cache
 0.022682 hiding package shelly-1.5.6 to avoid conflict with later version
 shelly-1.6.0
 0.022748 wired-in package ghc-prim mapped to ghc-
 prim-0.3.1.0-a24f9c14c632d75b683d0f93283aea37
 0.022836 wired-in package integer-gmp mapped to integer-
 gmp-0.5.1.0-26579559b3647acf4f01d5edd9491a46
 0.022874 wired-in package base mapped to
 base-4.7.0.2-bfd89587617e381ae01b8dd7b6c7f1c1
 0.022938 wired-in package rts mapped to builtin_rts
 0.022964 wired-in package template-haskell mapped to template-
 haskell-2.9.0.0-6d27c2b362b15abb1822f2f34b9ae7f9
 0.022982 wired-in package dph-seq not found.
 0.023020 wired-in package dph-par not found.
 0.023869 Created temporary directory: /tmp/ghc12579_0
 0.023918 *** C pre-processor:
 0.029089 *** Checking old interface for main:Lexer:
 0.029165 *** Parser:
 0.103668 *** Renamer/typechecker:
 0.901522 *** Desugar:
 1.507213 Result size of Desugar (after optimization)
 1.507273   = {terms: 97,707, types: 6,407, coercions: 4}
 1.507283 *** Simplifier:
 1.722230 Result size of Simplifier iteration=1
 1.722290   = {terms: 92,782, types: 1,457, coercions: 31}
 2.014619 Result size of Simplifier iteration=2
 2.014680   = {terms: 92,784, types: 1,469, coercions: 40}
 2.251739 Result size of Simplifier
 2.251799   = {terms: 92,784, types: 1,469, coercions: 40}
 2.251808 *** Specialise:
 2.308621 Result size of Specialise
 2.308682   = {terms: 92,784, types: 1,469, coercions: 40}
 2.308692 *** Float out(FOS {Lam = Just 0, Consts = True, PAPs = False}):
 2.308699 Result size of Float out(FOS {Lam = Just 0,
 2.308715                               Consts = True,
 2.721925                               PAPs = False})
 2.721984   = {terms: 161,685, types: 37,280, coercions: 40}
 2.721993 *** Float inwards:
 2.806740 Result size of Float inwards
 2.806800   = {terms: 161,685, types: 37,280, coercions: 40}
 2.806810 *** Simplifier:
 4.854193 Result size of Simplifier iteration=1
 4.854254   = {terms: 89,091, types: 2,930, coercions: 1,043}
 5.037276 Result size of Simplifier iteration=2
 5.037336   = {terms: 88,743, types: 2,545, coercions: 770}
 5.299382 Result size of Simplifier iteration=3
 5.299442   = {terms: 88,739, types: 2,542, coercions: 767}
 5.557920 Result size of Simplifier
 5.557980   = {terms: 88,739, types: 2,542, coercions: 767}
 5.557989 *** Simplifier:
 5.828540 Result size of Simplifier iteration=1
 5.828599   = {terms: 88,694, types: 32,129, coercions: 767}
 6.148168 Result size of Simplifier
 6.148227   = {terms: 88,686, types: 32,117, coercions: 767}
 6.148237 *** Simplifier:
 6.428055 Result size of Simplifier iteration=1
 6.428115   = {terms: 88,707, types: 32,132, coercions: 781}
 6.708043 Result size of Simplifier iteration=2
 6.708103   = {terms: 88,707, types: 32,132, coercions: 767}
 6.996411 Result size of Simplifier
 6.996470   = {terms: 88,707, types: 32,132, coercions: 767}
 6.996480 *** Demand analysis:
 7.259522 Result size of Demand analysis
 7.259587   = {terms: 88,707, types: 32,132, coercions: 767}
 7.259599 *** Worker Wrapper binds:
 7.309554 Result size of Worker Wrapper binds
 7.309618   = {terms: 88,872, types: 32,381, coercions: 767}
 7.309631 *** Simplifier:
 7.583439 Result size of Simplifier iteration=1
 7.583499   = {terms: 88,820, types: 32,337, coercions: 767}
 7.867272 Result size of Simplifier iteration=2
 7.867333   = {terms: 88,751, types: 32,199, coercions: 767}
 8.146394 Result size of Simplifier
 8.146453   = {terms: 88,751, types: 32,199, coercions: 767}
 8.146462 *** Float out(FOS {Lam = Just 0, Consts = True, PAPs = True}):
 8.146469 Result size of Float out(FOS {Lam = Just 0,
 8.146486                               Consts = True,
 8.732691                               PAPs = True})
 8.732752   = {terms: 205,891, types: 122,523, coercions: 767}
 8.732761 *** Common sub-expression:
 9.101395 Result size of Common sub-expression
 9.101457   = {terms: 177,032, types: 121,927, coercions: 217}
 9.101466 *** Float inwards:
 9.207068 Result size of Float inwards
 9.207128   = {terms: 177,032, types: 121,927, coercions: 217}
 9.207137 *** Simplifier:
 9.811384 Result size of Simplifier iteration=1
 9.811444   = {terms: 119,608, types: 92,568, coercions: 217}
 10.273151 Result size of Simplifier iteration=2
 10.273205   = {terms: 119,609, types: 92,567, coercions: 217}
 10.829669 Result size of Simplifier
 10.829729   = {terms: 119,609, types: 92,567, coercions: 217}
 10.829739 *** Tidy Core:
 11.177167 Result size of Tidy Core
 11.177231   = {terms: 119,673, types: 92,627, coercions: 217}
 11.207078 *** CorePrep:
 11.549034 Result size of CorePrep
 11.549100   = {terms: 119,974, types: 92,991, coercions: 217}
 11.549129 *** Stg2Stg:
 11.549139 *** CodeOutput:
 11.549306 *** New CodeGen:
 11.549336 *** CPSZ:
 11.549480 *** CPSZ:
 11.550487 *** CPSZ:

 (...almost 30000 lines of uninteresting "*** CPSZ:" removed...)

 13.468961 *** CPSZ:
 13.469193 *** CPSZ:
 13.469423 *** CPSZ:
 13.473052 *** Assembler:
 13.611920 *** Deleting temp files:
 13.612006 Warning: deleting non-existent /tmp/ghc12579_0/ghc12579_3.c
 13.612314 *** Deleting temp dirs:
 }}}

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


More information about the ghc-tickets mailing list