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

GHC ghc-devs at haskell.org
Mon Oct 30 13:12:16 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):

 Indeed dropping coercions won't fix the simplifier ticks issue.
 Nevertheless, I thought it would be important to characterise the coercion
 issue since this is one of the simplest reproducers of non-linear coercion
 growth to-date.

 The major contributors to the ticks summary look like this,

 ||= N =||= PreInlineUncond =||= RuleFired =||= BetaReduction =||= Total
 =||
 || 1   || 244 || 247 || 724 || 1772 ||
 || 2   || 262 || 284 || 811 || 1940 ||
 || 3   || 309 || 354 || 992 || 2295 ||
 || 4   || 396 || 481 || 1343 || 2963 ||
 || 5   || 569 || 713 || 2016 || 4227 ||
 || 6   || 907 || 1146 || 3317 || 6653 ||
 || 7   || 1561 || 1972 || 5848 || 11343 ||
 || 8   || 2860 || 3575 || 10831 || 20555 ||
 || 9   || 5444 || 6723 || 20696 || 38765 ||

 In the case of `N=9` the most frequently-firing rules are,
 {{{
 6723 RuleFired
   4348 Class op HEq_sc
   1029 Class op $p1HModify
   1029 Class op $p2HModify
   114 Class op $p1HGet
   ...
 }}}
 The top `PreInlineUnconditionally` targets are,
 {{{
 5444 PreInlineUnconditionally
   505 w
   505 w
   503 w
   503 w1
   503 w2
   503 w3
   503 w
   503 w1
   503 w2
   503 w3
   86 $dHGet
   ...
 }}}
 And the top beta reduction targets are,
 {{{
 20696 BetaReduction
   505 i
   505 e1
   505 ex
   505 els1
   505 e2
   505 els2
   505 w
   505 w1
   505 w2
   505 i
   505 e1
   505 ex
   505 els1
   505 e2
   505 els2
   505 w
   505 w1
   505 w2
   503 i
   503 e1
   503 ex
   503 els1
   503 e2
   503 els2
   503 w
   503 w1
   503 w2
   503 w3
   503 i
   503 e1
   503 ex
   503 els1
   503 e2
   503 els2
   503 w
   503 w1
   503 w2
   503 w3
   86 i
   ...
 }}}

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


More information about the ghc-tickets mailing list