
#11735: Optimize coercionKind -------------------------------------+------------------------------------- Reporter: goldfire | Owner: (none) Type: task | Status: new Priority: normal | Milestone: Component: Compiler | Version: 7.10.3 Resolution: | Keywords: Operating System: Unknown/Multiple | Architecture: Type of failure: Compile-time | Unknown/Multiple performance bug | Test Case: Blocked By: | Blocking: Related Tickets: | Differential Rev(s): Wiki Page: | -------------------------------------+------------------------------------- Comment (by tdammers): Refactoring `coercionRoleKinds` / `coercionRole` gives us another performance boost: {{{ Wed Jan 24 17:17 2018 Time and Allocation Profiling Report (Final) ghc-stage2 +RTS -p -RTS -B/home/tobias/well- typed/devel/ghc/inplace/lib Grammar.hs -ddump-stg -ddump-simpl -ddump-to- file -fforce-recomp total time = 24.18 secs (24176 ticks @ 1000 us, 1 processor) total alloc = 29,250,375,752 bytes (excludes profiling overheads) COST CENTRE MODULE SRC %time %alloc CoreTidy HscMain compiler/main/HscMain.hs:1253:27-67 24.8 28.5 Stg2Stg HscMain compiler/main/HscMain.hs:1489:12-44 20.1 24.2 simplCast Simplify compiler/simplCore/Simplify.hs:871:62-87 18.6 15.9 tc_rn_src_decls TcRnDriver compiler/typecheck/TcRnDriver.hs:(494,4)-(556,7) 8.1 6.9 addCoerce-pushCoTyArg Simplify compiler/simplCore/Simplify.hs:(1236,12)-(1237,72) 7.3 6.4 subst_ty TyCoRep compiler/types/TyCoRep.hs:2225:28-32 4.2 5.1 preprocessFile GhcMake compiler/main/GhcMake.hs:(2416,1)-(2443,37) 1.4 0.0 coercionKind Coercion compiler/types/Coercion.hs:1707:3-7 1.4 3.0 zonkTopDecls TcRnDriver compiler/typecheck/TcRnDriver.hs:(445,16)-(446,43) 1.3 1.1 simplExprF1-Lam Simplify compiler/simplCore/Simplify.hs:896:5-39 1.0 1.1 }}} Now on to the 25% spent on CoreTidy. -- Ticket URL: http://ghc.haskell.org/trac/ghc/ticket/11735#comment:12 GHC http://www.haskell.org/ghc/ The Glasgow Haskell Compiler