[GHC] #10370: Compile time regression in OpenGLRaw

GHC ghc-devs at haskell.org
Sun May 3 18:08:30 UTC 2015


#10370: Compile time regression in OpenGLRaw
-------------------------------------+-------------------------------------
        Reporter:  michalt           |                   Owner:
            Type:  bug               |                  Status:  new
        Priority:  normal            |               Milestone:
       Component:  Compiler          |                 Version:  7.10.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 Revisions:
-------------------------------------+-------------------------------------

Comment (by michalt):

 I've had another quick look at this and compiled profiled GHC with
 addition of `{-# OPTIONS_GHC -fprof-auto #-}` to simplCore/Simplify.hs.
 The results are interesting:

 {{{
         Sun May  3 17:33 2015 Time and Allocation Profiling Report
 (Final)

            ghc +RTS -hc -L100 -p -RTS [...]
 Graphics.Rendering.OpenGL.Raw.Functions

         total time  =       42.38 secs   (42385 ticks @ 1000 us, 1
 processor)
         total alloc = 65,222,063,200 bytes  (excludes profiling overheads)

 COST CENTRE               MODULE       %time %alloc

 tc_rn_src_decls           TcRnDriver    15.1   10.4
 completeCall.(...)        Simplify       9.5   22.0
 simplCast.add_coerce.arg' Simplify       9.1   21.8
 pprNativeCode             AsmCodeGen     4.2    3.2
 Parser                    HscMain        3.3    4.2
 RegAlloc                  AsmCodeGen     3.0    2.7
 regLiveness               AsmCodeGen     2.5    2.0
 simplLam                  Simplify       2.5    1.3
 OccAnal                   SimplCore      2.5    1.8
 StgCmm                    HscMain        2.3    1.2
 CallArity                 SimplCore      2.2    3.4
 FloatOutwards             SimplCore      1.7    1.1
 sink                      CmmPipeline    1.7    1.1
 simplAlts                 Simplify       1.5    0.8
 genMachCode               AsmCodeGen     1.5    0.9
 deSugar                   HscMain        1.5    1.3
 simplAlt                  Simplify       1.4    0.7
 simplUnfolding            Simplify       1.3    0.8
 layoutStack               CmmPipeline    1.2    0.9
 completeCall.info         Simplify       1.2    0.6
 completeBind              Simplify       1.2    0.6
 NativeCodeGen             CodeOutput     1.2    0.8
 rebuildCall               Simplify       1.1    1.0
 Simplify                  SimplCore      1.1    0.0
 }}}

 Looking at git blame the Simplify.simplCast didn't change much recently...
 Next week I'll try to have a look at Core generated by 7.8.4 and HEAD
 (maybe some stage before simplifier generates something weird?).

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


More information about the ghc-tickets mailing list