[GHC] #12789: "Simplifier ticks exhausted" compiling mutually recursive modules with GHC 8.
GHC
ghc-devs at haskell.org
Mon Oct 31 16:38:01 UTC 2016
#12789: "Simplifier ticks exhausted" compiling mutually recursive modules with GHC
8.
----------------------------------------+---------------------------------
Reporter: rdwebster | Owner:
Type: bug | Status: new
Priority: normal | Milestone:
Component: Compiler | Version: 8.0.1
Keywords: | Operating System: MacOS X
Architecture: Unknown/Multiple | Type of failure: None/Unknown
Test Case: | Blocked By:
Blocking: | Related Tickets:
Differential Rev(s): | Wiki Page:
----------------------------------------+---------------------------------
I encountered the "Simplifier ticks exhausted" error when compiling some
code generated by hprotoc in GHC 8.0.1.
It works with -O0, but fails with -O1.
The code compiles successfully with GHC 7.10, but fails with 8.0.1.
Specifying a larger value for 'simpl-tick-factor' doesn't seem to help.
The original code was generated by hprotoc, but a much simplified version
is attached.
Here is the output with '-ddump-simpl-stats' enabled:
{{{
stack build cycle-test --ghc-options -ddump-simpl-stats
cycle-test-0.1.0.0: configure
Configuring cycle-test-0.1.0.0...
cycle-test-0.1.0.0: build
Preprocessing library cycle-test-0.1.0.0...
[1 of 4] Compiling Thing2[boot] ( src/Thing2.hs-boot, .stack-
work/dist/x86_64-osx/Cabal-1.24.0.0/build/Thing2.o-boot )
[2 of 4] Compiling Thing1 ( src/Thing1.hs, .stack-
work/dist/x86_64-osx/Cabal-1.24.0.0/build/Thing1.o )
[3 of 4] Compiling Thing2 ( src/Thing2.hs, .stack-
work/dist/x86_64-osx/Cabal-1.24.0.0/build/Thing2.o )
[4 of 4] Compiling Box ( src/Box.hs, .stack-
work/dist/x86_64-osx/Cabal-1.24.0.0/build/Box.o )
ghc: panic! (the 'impossible' happened)
(GHC version 8.0.1 for x86_64-apple-darwin):
Simplifier ticks exhausted
When trying UnfoldingDone $fxEqThing2
To increase the limit, use -fsimpl-tick-factor=N (default 100)
If you need to do this, let GHC HQ know, and what factor you needed
Total ticks: 6442
1681 PreInlineUnconditionally
280 $dEq_a1AB
280 ds_a1AC
280 ds_i28z
280 ds1_i28A
279 ds_i29a
279 ds1_i29b
1 ds_a1As
1 ds_d28r
1 ds_d28s
280 PostInlineUnconditionally 280 ds1_a1AD
1120 UnfoldingDone
280 $fEqMaybe_$c==
280 $fEqThing1_$c==
279 $fxEqThing2
279 $fEqThing2_$c==
1 $c==_a289
1 not
279 RuleFired 279 Class op ==
2241 BetaReduction
280 a_a1AA
280 $dEq_a1AB
280 ds_a1AC
280 ds1_a1AD
280 ds_i28z
280 ds1_i28A
279 ds_i29a
279 ds1_i29b
1 ds_a1As
1 ds_d28r
1 ds_d28s
1 CaseOfCase 1 wild_a1At
840 KnownBranch 840 wild_a1At
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/12789>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list