
#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