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

GHC ghc-devs at haskell.org
Tue Apr 18 22:08:42 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):

 > Could we CSE those calls before inlining the foldlM?

 Perhaps, but

 It seems like what is happening is this,
 1. The specialiser creates an `INLINE` specialisation,
     {{{ $sunstream :: Bundle Vector Int -> New Vector Int }}} which has
 `foldlM` (and consequently `foldlM_loop`) let-bound within it
 2. FloatOut gets run, but since we are in an `InlineCtxt` we don't float
 the `foldlM_loop`s out to top-level where CSE might be able to consolidate
 them (incidentally, is `Note [FloatOut inside INLINE]` in `SetLevels`
 still correct? It doesn't seem to be referenced from anywhere)
 3. The specialisation is inlined into dozens of callsites
 4. We do lots of expensive, redundant simplification
 5. Eventually we do CSE, but even then we don't eliminate the redundant
 top-level `foldlM_loop`s for the reason discussed in comment:16

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


More information about the ghc-tickets mailing list