
Brandon Allbery wrote:
I do find myself wondering if anyone has checked to see how important the inlining is these days; perhaps ghc's general performance (and a hat tip to Moore's law) has made it possible to consider compiling more stable libraries.
Lately, I have been looking at GHC Core output for unrelated reasons, and it appears to me that cross-module inlining is essential to GHC performance. For instance, if you don't inline the monadic combinators (>>=) and `return` for the IO monad and perform even more inlining afterwards, performance can easily differ by an order of magnitude. The reason is that the second argument of (>>=) is a closure. Closure creation is very expensive compared to the sequence of primops you get after inlining. Best regards, Heinrich Apfelmus -- http://apfelmus.nfshost.com