[GHC] #10083: ghc: panic! (the 'impossible' happened)

GHC ghc-devs at haskell.org
Tue May 10 09:08:50 UTC 2016


#10083: ghc: panic! (the 'impossible' happened)
-------------------------------------+-------------------------------------
        Reporter:  hedayaty          |                Owner:
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       Component:  Compiler          |              Version:  7.8.4
      Resolution:                    |             Keywords:  hs-boot
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  crash                              |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:                    |  Differential Rev(s):
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by ezyang):

 Simon, re the performance problem, I'm no inliner expert but I think the
 problem is that you're always giving declarations which occur in the hs-
 boot file "never inline", even when it's totally inappropriate. For
 example, rewrite `eqRSR` to unconditionally return `True` and you'll still
 get:

 {{{
 -- RHS size: {terms: 9, types: 6, coercions: 0}
 eqRSR [InlPrag=[NEVER]] :: RSR -> RSR -> Bool
 [GblId, Arity=2, Caf=NoCafRefs, Str=<S,1*H><S,1*H>]
 eqRSR =
   \ (ds_d1H9 :: RSR) (ds1_d1Ha :: RSR) ->
     case ds_d1H9 of { MkRSR s1_aKA ->
     case ds1_d1Ha of { MkRSR s2_aKB -> GHC.Types.True }
     }
 }}}

 I bet it's failure to inline for clients of RSR.hs which is causing the
 performance degradation.

--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/10083#comment:23>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler


More information about the ghc-tickets mailing list