[GHC] #13535: vector test suite uses excessive memory on GHC 8.2

GHC ghc-devs at haskell.org
Tue Apr 18 13:54:15 UTC 2017


#13535: vector test suite uses excessive memory on GHC 8.2
-------------------------------------+-------------------------------------
        Reporter:  RyanGlScott       |                Owner:  (none)
            Type:  bug               |               Status:  new
        Priority:  highest           |            Milestone:  8.2.1
       Component:  Compiler          |              Version:  8.1
      Resolution:                    |             Keywords:
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  performance bug                    |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:  #10800            |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by bgamari):

 You should be able to reproduce this with,
 {{{
 $ git clone git://github.com/haskell/vector
 $ cd vector
 $ git checkout 1d208ee9e3a252941ebd112e14e8cd5a982ac2bb
 $ cabal install . --allow-newer=base,directory,process,haskeline,time,unix
 --disable-library-profiling --enable-test
 $ time ghc -no-link \
     -i \
     -idist/build/vector-tests-O2/vector-tests-O2-tmp \
     -itests \
     -idist/build/vector-tests-O2/autogen \
     -idist/build/global-autogen \
     -Idist/build/vector-tests-O2/autogen \
     -Idist/build/global-autogen \
     -Idist/build/vector-tests-O2/vector-tests-O2-tmp \
     -optP-include \
     -optPdist/build/vector-tests-O2/autogen/cabal_macros.h \
     -XHaskell2010 \
     -XCPP \
     -XScopedTypeVariables \
     -XPatternGuards \
     -XMultiParamTypeClasses \
     -XFlexibleContexts \
     -XRank2Types \
     -XTypeSynonymInstances \
     -XTypeFamilies \
     -XTemplateHaskell \
     tests/Tests/Vector \
     -O2 \
     -Wall \
     -fno-warn-orphans \
     -fno-warn-missing-signatures \
     -Wno-name-shadowing \
     -Wno-unused-binds \
     -Wno-unused-matches \
     -Wno-unused-imports \
     -ddump-to-file \
     -ddump-simpl \
     -dsuppress-idinfo \
     -fforce-recomp \
     -v \
     +RTS -t 2>&1 | tee log
 }}}

 Then grep for `^\$s\$wfoldlM` in the `dump-simpl` output. You should see a
 number of top-level bindings of the type that I mention in comment:10. In
 my case they are all exactly of size,
 {{{
 -- RHS size: {terms: 209, types: 244, coercions: 466, joins: 0/7}
 }}}
 and the right-hand sides are identical.


 It seems that the bindings in question are being excluded from CSE by
 `CSE.noCSE`. I suspect they may be join points, but I'm still trying to
 work out the particulars.

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


More information about the ghc-tickets mailing list