[GHC] #14637: Simplifier Ticks Exhausted when compiling with profiling
GHC
ghc-devs at haskell.org
Wed Jan 24 21:14:55 UTC 2018
#14637: Simplifier Ticks Exhausted when compiling with profiling
-------------------------------------+-------------------------------------
Reporter: cfhammill | Owner: (none)
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.2.2
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 niteria):
Things appear to be growing exponentially:
{{{
SIZE 1
Result size of Desugar (before optimization) = {terms: 158, types: 621,
coercions: 257, joins: 0/19}
Result size of Desugar (after optimization) = {terms: 133, types: 370,
coercions: 150, joins: 0/4}
Result size of Simplifier iteration=1 = {terms: 205, types: 466,
coercions: 81, joins: 0/4}
Total ticks: 222
SIZE 2
Result size of Desugar (before optimization) = {terms: 175, types: 903,
coercions: 463, joins: 0/25}
Result size of Desugar (after optimization) = {terms: 144, types: 544,
coercions: 345, joins: 0/7}
Result size of Simplifier iteration=1 = {terms: 411, types: 3,242,
coercions: 1,533, joins: 0/32}
Total ticks: 454
SIZE 3
Result size of Desugar (before optimization) = {terms: 198, types: 1,358,
coercions: 823, joins: 0/33}
Result size of Desugar (after optimization) = {terms: 159, types: 845,
coercions: 691, joins: 0/11}
Result size of Simplifier iteration=1 = {terms: 705, types: 8,184,
coercions: 3,826, joins: 0/67}
Total ticks: 1360
SIZE 4
Result size of Desugar (before optimization) = {terms: 227, types: 2,029,
coercions: 1,398, joins: 0/43}
Result size of Desugar (after optimization) = {terms: 178, types: 1,303,
coercions: 1,248, joins: 0/16}
Result size of Simplifier iteration=1 = {terms: 1,363, types: 20,717,
coercions: 10,083, joins: 0/145}
Total ticks: 4986
SIZE 5
Result size of Desugar (before optimization) = {terms: 262, types: 2,959,
coercions: 2,269, joins: 0/55}
Result size of Desugar (after optimization) = {terms: 201, types: 1,948,
coercions: 2,096, joins: 0/22}
Result size of Simplifier iteration=1 = {terms: 2,785, types: 50,660,
coercions: 25,205, joins: 0/313}
Total ticks: 9535
SIZE 6
Result size of Desugar (before optimization) = {terms: 303, types: 4,191,
coercions: 3,525, joins: 0/69}
Result size of Desugar (after optimization) = {terms: 228, types: 2,810,
coercions: 3,323, joins: 0/29}
Result size of Simplifier iteration=1 = {terms: 5,851, types: 120,950,
coercions: 60,893, joins: 0/673}
Total ticks: 18885
SIZE 7
Result size of Desugar (before optimization) = {terms: 350, types: 5,768,
coercions: 5,267, joins: 0/85}
Result size of Desugar (after optimization) = {terms: 259, types: 3,919,
coercions: 5,029, joins: 0/37}
Result size of Simplifier iteration=1 = {terms: 13,977, types: 330,419,
coercions: 199,879, joins: 0/1,505}
Total ticks: 38957
SIZE 8
Result size of Desugar (before optimization) = {terms: 403, types: 7,733,
coercions: 7,608, joins: 0/103}
Result size of Desugar (after optimization) = {terms: 294, types: 5,305,
coercions: 7,326, joins: 0/46}
Result size of Simplifier iteration=1 = {terms: 30,779, types: 795,941,
coercions: 499,205, joins: 0/3,233}
Total ticks: 82839
SIZE 9
Result size of Desugar (before optimization) = {terms: 462, types: 10,129,
coercions: 10,673, joins: 0/123}
Result size of Desugar (after optimization) = {terms: 333, types: 6,998,
coercions: 10,338, joins: 0/56}
Result size of Simplifier iteration=1 = {terms: 60,193, types: 1,647,410,
coercions: 937,457, joins: 0/6,881}
Total ticks: 179203
}}}
If we don't run out of ticks the simplifier manages to beat down the sizes
considerably (see attached `results-all`).
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/14637#comment:6>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list