
#15488: GHC takes up huge amount of memory when compiling accelerate 1.2.0 -------------------------------------+------------------------------------- Reporter: noah | Owner: tdammers Type: bug | Status: new Priority: high | Milestone: 8.6.1 Component: Compiler | Version: 8.4.3 Resolution: | Keywords: | accelerate,memory,compile Operating System: Linux | Architecture: x86_64 | (amd64) Type of failure: Compile-time | Test Case: accelerate performance bug | 1.2.0 Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by tdammers): Unfortunately, the `dump-simpl` output is too large to attach (~3 MiB), but almost all of it is indeed one huge `case` for `encodeVectorConst`, and it does fit the case-of-case pattern. So let me see if I understand this correctly: case-of-case is supposed to unwrap constructs of the shape `case (case a of b -> c) of d -> e` into `case a of b -> (case c of d -> e)`, and normally, the result would then reduce to something simpler than the original case-of-case construct - but in this case, it doesn't. Does that mean what we need is a way to tell when this is going to happen, and in those cases, skip the transform? And something I don't understand yet is how this relates to #15253 (adding support for type-level integers). -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/15488#comment:12 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler