
#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