[GHC] #14880: GHC panic: updateRole

GHC ghc-devs at haskell.org
Mon Jul 23 18:26:24 UTC 2018


#14880: GHC panic: updateRole
-------------------------------------+-------------------------------------
        Reporter:  RyanGlScott       |                Owner:  goldfire
            Type:  bug               |               Status:  new
        Priority:  normal            |            Milestone:
       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):

 Managed to get meaningful ticky-ticky profiling data.

 Before the patch:

 {{{

 The following table is explained by
 http://ghc.haskell.org/trac/ghc/wiki/Debugging/TickyTicky
 All allocation numbers are in bytes.

 **************************************************

     Entries      Alloc    Alloc'd  Non-void Arguments      STG Name
 --------------------------------------------------------------------------------
      172005   90819296          0   5 EMMMS
 ghc:TcUnify.promoteTcType2{v r3m} (fun)
     2301299   85611504          0   2 >L
 base:GHC.Base.map{v 01X} (fun)
     1612793   73036520          0   3 i.M
 containers-0.5.11.0:Data.IntMap.Internal.$winsert{v r7O} (fun)
      699656   37268264          0   1 L                    go4{v sNuG}
 (ghc:TcMType) (fun) in r1Y
      448802   35904160          0   7 E>>>>.M
 ghc:TcMType.$s$wmapType{v r1Y} (fun)
      367181   23499584          0   2 LS
 ghc:TcRnMonad.traceTc1{v rlu} (fun)
      887399   22625616          0   1 M                    go28{v sNuF}
 (ghc:TcMType) (fun) in r1Y
      283135   21931488          0   4 >SSM
 ghc:TcHsSyn.$wzonkTyVarOcc{v r1F} (fun)
      269137   18194264          0   1 L                    go13{v sSIr}
 (ghc:TcHsSyn) (fun) in rN
      302653   16395904          0   5 +>LLL
 ghc:MonadUtils.zipWith3M{v rp} (fun)
      194400   15552000          0   7 E>>>>.M
 ghc:TcHsSyn.$s$wmapType{v rN} (fun)
      559499   15509096          0   1 M
 ghc:TcMType.zonkTcTyVar{v r1l} (fun)
      138823   13706576          0   1 S                    sat_sMU6{v}
 (ghc:TcMType) (fun) in r6P
      459700   11089080          0   1 S                    sat_sNvf{v}
 (ghc:TcMType) (fun) in sNuF
 }}}

 After:

 {{{

 The following table is explained by
 http://ghc.haskell.org/trac/ghc/wiki/Debugging/TickyTicky
 All allocation numbers are in bytes.

 **************************************************

     Entries      Alloc    Alloc'd  Non-void Arguments      STG Name
 --------------------------------------------------------------------------------
      172005   90819296          0   5 EMMMS
 ghc:TcUnify.promoteTcType2{v r3m} (fun)
     2330347   86853624          0   2 >L
 base:GHC.Base.map{v 01X} (fun)
     1271867   57141560          0   3 i.M
 containers-0.5.11.0:Data.IntMap.Internal.$winsert{v r7O} (fun)
      699656   37268264          0   1 L                    go4{v sNmh}
 (ghc:TcMType) (fun) in r1Y
      448802   35904160          0   7 E>>>>.M
 ghc:TcMType.$s$wmapType{v r1Y} (fun)
      693375   27595440          0   3 MIM                  poly_merge1{v
 rs9H} (containers-0.5.11.0:Data.IntMap.Internal) (fun)
      367181   23499584          0   2 LS
 ghc:TcRnMonad.traceTc1{v rlu} (fun)
      887399   22625616          0   1 M                    go28{v sNmg}
 (ghc:TcMType) (fun) in r1Y
      283135   21931488          0   4 >SSM
 ghc:TcHsSyn.$wzonkTyVarOcc{v r1F} (fun)
      269137   18194264          0   1 L                    go13{v sSHY}
 (ghc:TcHsSyn) (fun) in rN
       95951   16510560          0   2 >L
 base:Data.OldList.sortBy{v rD} (fun)
      302653   16395904          0   5 +>LLL
 ghc:MonadUtils.zipWith3M{v rp} (fun)
      194400   15552000          0   7 E>>>>.M
 ghc:TcHsSyn.$s$wmapType{v rN} (fun)
      559499   15509096          0   1 M
 ghc:TcMType.zonkTcTyVar{v r1l} (fun)
 }}}

 Note the `poly_merge1` entry in the post-patch one.

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


More information about the ghc-tickets mailing list