[GHC] #16413: GHC bindist with DWARF support seems much slower than non-DWARF

GHC ghc-devs at haskell.org
Sat Mar 9 03:06:03 UTC 2019


#16413: GHC bindist with DWARF support seems much slower than non-DWARF
-------------------------------------+-------------------------------------
           Reporter:  jberryman      |             Owner:  (none)
               Type:  bug            |            Status:  new
           Priority:  normal         |         Milestone:
          Component:  Compiler       |           Version:  8.6.3
           Keywords:                 |  Operating System:  Unknown/Multiple
       Architecture:                 |   Type of failure:  None/Unknown
  Unknown/Multiple                   |
          Test Case:                 |        Blocked By:
           Blocking:                 |   Related Tickets:
Differential Rev(s):                 |         Wiki Page:
-------------------------------------+-------------------------------------
 Comparing the DWARF and non-DWARF binary distributions, I'm seeing times
 for a `cabal new-build --disable-profiling --disable-library-profiling
 all` for a multi-library project showing e.g. 5:46.90 for DWARF, vs
 3:56.40 for non-DWARF bindists.

 I'm assuming this is unexpected since I don't see it proclaimed loudly
 anywhere.

 I thought this was irrelevant, but I did try doing `cabal new-build ...
 --enable-debug-info=0` with the DWARF-supporting GHC but that didn't seem
 to improve compile time. I don't see anything relevant in my
 `~/.cabal/config`.

 Even more confused because I see the same slow timing (~ 5:45) for a
 `stack build` in the same project, yet it looks like `stack` pulls in a
 GHC without DWARF-compiled libs:

 {{{
 $ readelf --debug-dump
 $HOME/.stack/programs/x86_64-linux/ghc-8.6.3/lib/ghc-8.6.3/text-1.2.3.1/libHStext-1.2.3.1-ghc8.6.3.so
 | grep Version
 $
 }}}

 Maybe `stack` is compiling in a different way though, and the timing
 similarity is just a coincidence.

 I first noticed this when building GHC from source. It seemed that
 uncommenting these caused the regression (though I haven't double-
 checked):

 {{{
 #GhcLibHcOpts += -g3
 #GhcRtsHcOpts += -g3
 }}}

 Attached is the project repo I tested with (again, with `cabal new-clean
 && cabal new-build --disable-profiling --disable-library-profiling all`).

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


More information about the ghc-tickets mailing list