[GHC] #10491: Simplifier explosion with Accelerate

GHC ghc-devs at haskell.org
Fri Jun 5 05:11:40 UTC 2015


#10491: Simplifier explosion with Accelerate
-------------------------------------+-------------------------------------
              Reporter:  robertce    |             Owner:
                  Type:  bug         |            Status:  new
              Priority:  normal      |         Milestone:  7.10.2
             Component:  Compiler    |           Version:  7.10.1
              Keywords:              |  Operating System:  Unknown/Multiple
          Architecture:              |   Type of failure:  None/Unknown
  Unknown/Multiple                   |        Blocked By:
             Test Case:              |   Related Tickets:
              Blocking:              |
Differential Revisions:              |
-------------------------------------+-------------------------------------
 In [https://github.com/AccelerateHS/accelerate Accelerate] we are
 encountering problems with the simplifier exploding the number of terms,
 which consequently cause huge compile times. This has only happened since
 the release of 7.10.1 and it appears to still be happening in the ghc-7.10
 branch.

 In the attached Slice.hs you can see what is about the worst case example.
 Trying to compile this with `-O2` yields

 {{{
 [1 of 1] Compiling Data.Array.Accelerate.CUDA.Array.Slice ( Slice.hs,
 Slice.o )
 ghc: panic! (the 'impossible' happened)
   (GHC version 7.10.1.20150602 for x86_64-apple-darwin):
         Simplifier ticks exhausted
   When trying UnfoldingDone $j_s1FRp
   To increase the limit, use -fsimpl-tick-factor=N (default 100)
   If you need to do this, let GHC HQ know, and what factor you needed
   To see detailed counts use -ddump-simpl-stats
   Total ticks: 1668604
 }}}

 Bumping the tick factor to 150 stops this from happening, but at that
 point the simplifier blows up. See output.txt for the output of `ghc -v`.
 After half an hour we end up with ~4 million terms. At this point ghc
 takes up about 9GB of memory and I have to kill it.

 In order to reproduce this, you will need the `accelerate` package and all
 its various dependencies. The one on hackage works fine. I will try to
 come up with a test case that is not so heavy on dependencies, but I
 wanted to ensure this was raised before 7.10.2 is released.

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


More information about the ghc-tickets mailing list