[GHC] #14880: GHC panic: updateRole

GHC ghc-devs at haskell.org
Thu Sep 6 16:22:32 UTC 2018


#14880: GHC panic: updateRole
-------------------------------------+-------------------------------------
        Reporter:  RyanGlScott       |                Owner:  goldfire
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:  8.8.1
       Component:  Compiler (Type    |              Version:  8.2.2
  checker)                           |
      Resolution:                    |             Keywords:  TypeInType
Operating System:  Unknown/Multiple  |         Architecture:
 Type of failure:  Compile-time      |  Unknown/Multiple
  crash or panic                     |            Test Case:
      Blocked By:                    |             Blocking:
 Related Tickets:  #15076            |  Differential Rev(s):  Phab:D4769
       Wiki Page:                    |
-------------------------------------+-------------------------------------

Comment (by tdammers):

 Replying to [comment:106 goldfire]:
 > I might have time to take a look at this, but I'll need a bit more
 direction. You say that you might have missed something -- what two
 branches can I compare to assess that?

 I think you may be missing some context here, so here's the executive
 summary:

 - Your original patch is on `wip/T14880`
 - The baseline HEAD from right before your patch is on
 `wip/T14880-baseline`
 - Simon's patch (as mentioned above) is on `wip/T1448-accum`
 - `wip/T14880-reengineered` contains your patch (as on `wip/T14880`), with
 the approach from Simon's patch applied practically verbatim.

 Now here's the conundrum:

 - The baseline version performs within limits
 - Your patch applied as-is fails two performance tests: 5321Fun and 5631
 - Simon's patch improves performance on 5631
 - But Simon's approach applied to your patch doesn't

 > As for the one-line change: it's seems conceivable that the change could
 have a measurable performance impact. Have you tested the change,
 independent of anything else? If the fix makes performance worse, that
 would be an insight, because the `acc` check looks like it's only an
 optimization, not an essential check for correctness.

 It is only an optimization, but that's the whole point of digging further
 here - the patch allocates more even though we would it expect it to
 allocate less. AFAIK there are no correctness issues anymore. The patch
 without the `acc` check fails the two performance tests, but so does the
 version with the check.

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


More information about the ghc-tickets mailing list