[GHC] #11735: Optimize coercionKind
GHC
ghc-devs at haskell.org
Tue Jan 30 12:33:51 UTC 2018
#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):
Replying to [comment:55 simonpj]:
> Do you have allocation numbers for these runs?
>
> The mysterious thing is that `NthCo` caching makes things slightly
worse. Of course the `NthCo` constructors have an extra field, but I'm
still quite surprised that's a visible worsening. So I think it might be
worth a little more digging into the worsening in `8ac966971e`, really
just to discover if we have accidentally left money on the table.
Yes, of course.
This is `8ac966971e`:
{{{
Tue Jan 30 11:25 2018 Time and Allocation Profiling Report
(Final)
ghc-stage2 +RTS -p -RTS -B/home/tobias/well-
typed/devel/ghc/inplace/lib ./cases/Grammar.hs -o ./a -fforce-recomp
total time = 12.87 secs (12865 ticks @ 1000 us, 1
processor)
total alloc = 14,385,409,080 bytes (excludes profiling overheads)
COST CENTRE MODULE SRC
%time %alloc
simplCast Simplify
compiler/simplCore/Simplify.hs:871:62-87 33.7 32.4
addCoerce-pushCoTyArg Simplify
compiler/simplCore/Simplify.hs:(1236,12)-(1237,72) 13.1 13.1
tc_rn_src_decls TcRnDriver
compiler/typecheck/TcRnDriver.hs:(494,4)-(556,7) 12.3 14.0
subst_ty TyCoRep compiler/types/TyCoRep.hs:2237:28-32
6.7 10.4
CoreTidy HscMain compiler/main/HscMain.hs:1253:27-67
4.4 3.9
coercionKind Coercion compiler/types/Coercion.hs:1725:3-7
2.6 6.0
zonkTopDecls TcRnDriver
compiler/typecheck/TcRnDriver.hs:(445,16)-(446,43) 2.0 2.2
load'.checkHowMuch GhcMake
compiler/main/GhcMake.hs:(270,9)-(272,27) 2.0 0.0
simplCast-simplCoercion Simplify
compiler/simplCore/Simplify.hs:1224:57-77 1.6 1.5
simplExprF1-Lam Simplify compiler/simplCore/Simplify.hs:896:5-39
1.6 2.2
deSugar HscMain compiler/main/HscMain.hs:511:7-44
1.5 1.3
simplCast-addCoerce Simplify
compiler/simplCore/Simplify.hs:1225:53-71 1.4 1.3
tcRnImports TcRnDriver
compiler/typecheck/TcRnDriver.hs:240:20-50 1.0 0.1
Parser HscMain
compiler/main/HscMain.hs:(316,5)-(384,20) 0.9 1.6
}}}
Which isn't actually significantly worse than `4eb140f564`:
{{{
Tue Jan 30 11:45 2018 Time and Allocation Profiling Report
(Final)
ghc-stage2 +RTS -p -RTS -B/home/tobias/well-
typed/devel/ghc/inplace/lib ./cases/Grammar.hs -o ./a -fforce-recomp
total time = 12.38 secs (12380 ticks @ 1000 us, 1
processor)
total alloc = 14,385,403,880 bytes (excludes profiling overheads)
COST CENTRE MODULE SRC
%time %alloc
simplCast Simplify
compiler/simplCore/Simplify.hs:871:62-87 34.3 32.4
addCoerce-pushCoTyArg Simplify
compiler/simplCore/Simplify.hs:(1236,12)-(1237,72) 13.3 13.1
tc_rn_src_decls TcRnDriver
compiler/typecheck/TcRnDriver.hs:(494,4)-(556,7) 12.7 14.0
subst_ty TyCoRep compiler/types/TyCoRep.hs:2225:28-32
7.0 10.4
CoreTidy HscMain compiler/main/HscMain.hs:1253:27-67
4.5 3.9
coercionKind Coercion compiler/types/Coercion.hs:1707:3-7
2.9 6.0
zonkTopDecls TcRnDriver
compiler/typecheck/TcRnDriver.hs:(445,16)-(446,43) 2.0 2.2
simplExprF1-Lam Simplify compiler/simplCore/Simplify.hs:896:5-39
1.8 2.2
simplCast-simplCoercion Simplify
compiler/simplCore/Simplify.hs:1224:57-77 1.7 1.5
deSugar HscMain compiler/main/HscMain.hs:511:7-44
1.6 1.3
simplCast-addCoerce Simplify
compiler/simplCore/Simplify.hs:1225:53-71 1.4 1.3
simplIdF Simplify
compiler/simplCore/Simplify.hs:868:61-79 1.0 0.5
Parser HscMain
compiler/main/HscMain.hs:(316,5)-(384,20) 1.0 1.6
}}}
This is only about 4% more execution time, and 0.000035% more allocations.
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/11735#comment:57>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list