
#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