[GHC] #14338: Simplifier fails with "Simplifier ticks exhausted"

GHC ghc-devs at haskell.org
Mon Oct 30 21:55:59 UTC 2017


#14338: Simplifier fails with "Simplifier ticks exhausted"
-------------------------------------+-------------------------------------
        Reporter:  dredozubov        |                Owner:  bgamari
            Type:  bug               |               Status:  new
        Priority:  high              |            Milestone:  8.4.1
       Component:  Compiler          |              Version:  8.2.1
      Resolution:                    |             Keywords:
Operating System:  Linux             |         Architecture:  x86_64
 Type of failure:  Compile-time      |  (amd64)
  crash or panic                     |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by bgamari):

 So I augmented the `-ddump-simpl-stats` output to show the types of the
 named binders. Here I'll be looking at the N=9 case, since this
 demonstrates the problem clearly.

 In the case of the the `PreInlineUnconditionally` ticks, the high-count
 binders are all of one of the following forms
 {{{
   505 w_i4Ig :: ('TypeFun.Data.Peano.S
                    i_i4Ia :: TypeFun.Data.Peano.N)
                 Data.Type.Equality.~ (TypeFun.Data.List.IndexOf
                                         e1_i4Ib (ex_i4Ic : els1_i4Id) ::
 TypeFun.Data.Peano.N)
   503 w2_i4HF :: Data.HSet.HModify
                    els1_i4HA els2_i4HC e1_i4Hy e2_i4HB i_i4Hx
   503 w3_i4HG :: TypeFun.Data.List.NotElem ex_i4Hz els2_i4HC
 }}}
 There are ten binders in this list, each with either 505 or 503 ticks
 credited.

 The beta-reduced binders are all type variables of one of the following
 forms
 {{{
   505 i_i4Ia :: TypeFun.Data.Peano.N
   505 e1_i4Ib :: *
   505 els1_i4Id :: [*]
   505 w_i4Ig :: ('TypeFun.Data.Peano.S
                    i_i4Ia :: TypeFun.Data.Peano.N)
                 Data.Type.Equality.~ (TypeFun.Data.List.IndexOf
                                         e1_i4Ib (ex_i4Ic : els1_i4Id) ::
 TypeFun.Data.Peano.N)}}}
   505 w2_i4Ii :: Data.HSet.HModify
                    els1_i4Id els2_i4If e1_i4Ib e2_i4Ie i_i4Ia
 }}}
 there are a few dozen of these, each with either 505 or 503 credited
 ticks.

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


More information about the ghc-tickets mailing list