[GHC] #14929: Program compiled with -O2 exhibits much worse performance

GHC ghc-devs at haskell.org
Tue Jul 10 11:51:17 UTC 2018


#14929: Program compiled with -O2 exhibits much worse performance
-------------------------------------+-------------------------------------
        Reporter:  mpickering        |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  high              |            Milestone:
       Component:  Compiler          |              Version:  8.2.2
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Runtime           |  Unknown/Multiple
  performance bug                    |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by sgraf):

 Retainer profiling shows mentions this CAF:

 {{{
 -- RHS size: {terms: 2, types: 3, coercions: 0, joins: 0/0}
 lvl24_r7ue
   :: conduit-1.2.13:Data.Conduit.Internal.Pipe.Pipe
        B.ByteString B.ByteString Data.Void.Void () (ResourceT IO) ()
 [GblId]
 lvl24_r7ue
   = scc<interpretTop>
     scc<parseFile>
     scc<interpretTop>
     scc<parseFile>
     scc<>>=>
     scc<>>=.\>
     scc<>>=.\.\>
     scc<>>=>
     scc<>>=.\>
     scc<>>=.\.\>
     scc<interpretTop>
     scc<parseFile>
     scc<>>=>
     scc<>>=.\>
     scc<>>=.\.\>
     tick<>>=>
     scc<>>=>
     scctick<>>=.\>
     countC_r7tY @ Data.Void.Void @ B.ByteString @ () lvl23_r7ud
 }}}


 `-fno-full-laziness` is a work-around, but maybe we should have a more
 granular way to influence float out. We probably still want to float
 lambdas, for example.

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


More information about the ghc-tickets mailing list