[GHC] #14208: Performance with O0 is much better than the default or with -O2, runghc performs the best

GHC ghc-devs at haskell.org
Mon Sep 11 14:24:49 UTC 2017


#14208: Performance with O0 is much better than the default or with -O2, runghc
performs the best
-------------------------------------+-------------------------------------
        Reporter:  harendra          |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  8.2.1
      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 MikolajKonarski):

 Interesting. From what you write, my guess would be that when all
 functions are inlined (e.g., everything is placed in the same module) or
 when none get inlined, performance is good, but some combination of
 inlined and not inlined functions causes the slowdown (such things do
 happen and they are impossible to avoid). If I was to try and minimize
 this example, I'd put everything in the same module and then explore all
 combinations of INLINE and NOINLINE pragmas on functions. BTW, does the
 slowdown vanish if you enable -fexpose-all-unfoldings (and -fspecialise-
 aggressively for a good measure)?

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


More information about the ghc-tickets mailing list