[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