[GHC] #14880: GHC panic: updateRole

GHC ghc-devs at haskell.org
Thu Aug 2 09:12:30 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):

 New results: following the suggestion to go back to the (incorrect)
 baseline before the patch, and then *only* rewriting
 `tyCoVarsOf{Type|Co}[s]` in terms of `VarSet`, thus skipping the detour
 via `FV`, I compared three different versions:

 - the pre-patch baseline, available on the `wip/T14880-baseline` branch on
 git.haskell.org;
 - the patch, applied fully, available on the `wip/T14880` branch
 - the baseline version with the `tvCoVarsOf...` functions rewritten in
 terms of `VarSets`, copying the logic from the `FV` flavors, available on
 the `wip/T14880-just-tvs` branch.

 The expectation was that `-just-tvs` would perform better than the
 baseline, because it skips the additional machinery of `FV`; however, it
 turns out that it's actually slower and allocates more.

 Detailed timing results:

 {{{
 ** Baseline **

         Command being timed: "/home/tobias/well-typed/devel/ghc-
 phab/inplace/bin/ghc-stage2 -c testsuite/tests/perf/compiler/T5631.hs
 -fforce-recomp +RTS -rlogs/T14880-baseline.ticky -RTS"
         User time (seconds): 3.17
         System time (seconds): 0.08
         Percent of CPU this job got: 99%
         Elapsed (wall clock) time (h:mm:ss or m:ss): 0:03.27
         Maximum resident set size (kbytes): 292764
         Average resident set size (kbytes): 0
         Major (requiring I/O) page faults: 0
         Minor (reclaiming a frame) page faults: 42788
         Voluntary context switches: 392
         Involuntary context switches: 18

 ** Just VarSet **

         Command being timed: "/home/tobias/well-typed/devel/ghc-
 phab/inplace/bin/ghc-stage2 -c testsuite/tests/perf/compiler/T5631.hs
 -fforce-recomp +RTS -rlogs/T14880-just-tvs.ticky -RTS"
         User time (seconds): 3.28
         System time (seconds): 0.06
         Percent of CPU this job got: 91%
         Elapsed (wall clock) time (h:mm:ss or m:ss): 0:03.64
         Maximum resident set size (kbytes): 294916
         Average resident set size (kbytes): 0
         Major (requiring I/O) page faults: 6
         Minor (reclaiming a frame) page faults: 42784
         Voluntary context switches: 452
         Involuntary context switches: 20

 ** 14880 patch **

         Command being timed: "/home/tobias/well-typed/devel/ghc-
 phab/inplace/bin/ghc-stage2 -c testsuite/tests/perf/compiler/T5631.hs
 -fforce-recomp +RTS -rlogs/T14880.ticky -RTS"
         User time (seconds): 3.26
         System time (seconds): 0.07
         Percent of CPU this job got: 95%
         Elapsed (wall clock) time (h:mm:ss or m:ss): 0:03.49
         Maximum resident set size (kbytes): 295684
         Average resident set size (kbytes): 0
         Major (requiring I/O) page faults: 11
         Minor (reclaiming a frame) page faults: 43047
         Voluntary context switches: 422
         Involuntary context switches: 17
 }}}

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


More information about the ghc-tickets mailing list