[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