
#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