[GHC] #10527: Panic Simplifier ticks exhausted with type families
GHC
ghc-devs at haskell.org
Thu Jun 25 16:12:14 UTC 2015
#10527: Panic Simplifier ticks exhausted with type families
-------------------------------------+-------------------------------------
Reporter: sopvop | Owner: bgamari
Type: bug | Status: new
Priority: highest | Milestone: 7.10.2
Component: Compiler | Version: 7.10.1-rc1
Resolution: | Keywords:
Operating System: Unknown/Multiple | Architecture:
Type of failure: None/Unknown | Unknown/Multiple
Blocked By: | Test Case:
Related Tickets: | Blocking:
| Differential Revisions:
-------------------------------------+-------------------------------------
Comment (by bgamari):
I am still churning through this one but I think I finally have some
traction. In 7.10.2 each field added to the records roughly doubles the
`simpl-tick-factor` necessary to finish.
I am now comparing the sequences of inlinings performed by GHC 7.10.1 and
7.10.2. For those following along at home, it is enlightening (albeit
verbose) to compile like this,
{{{
ghc -fforce-recomp -O -dverbose-core2core -ddump-simpl -ddump-to-file
-dshow-passes -ddump-simpl-stats -ddump-inlinings Bug.hs -fsimpl-tick-
factor=100 >|ghc.log 2>&1
}}}
Out pops a few hundred megabytes of text, but you now you have what you
need.
You can then easily compare two of these dumps with,
{{{
paste <(grep -n "Inlining done" 7.10.1/ghc.log) <(grep -n "Inlining done"
7.10.2/ghc.log) | column -s $'\t' -t | less
}}}
One notices certain patterns in this output. In particular, one finds
inlinings of `Inlining done: Data.Functor.Identity.$fFoldableIdentity2`
are done far more often in 7.10.1 than 7.10.2.
More analysis later.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10527#comment:6>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list