
#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