equivalent of EXPLAIN PLAN with GHC?
Joshua Haberman
joshua at reverberate.org
Mon Aug 3 03:05:20 EDT 2009
Don Stewart <dons <at> galois.com> writes:
> joshua:
> > Is there any kind of intermediate form that a person can examine to see
> > how their code is being optimized? Anything like EXPLAIN PLAN in SQL?
> > It would make it much easier to understand the kinds of optimizations
> > Haskell can perform.
> >
> > I'm not looking so much for profiling -- obvious this program is trivial
> > and takes no time. I just want to better understand what kind of
> > optimizations are possible given Haskell's language model.
> >
>
> So the optimization you're looking for here is fusion of some kind.
> GHC ships with build/foldr fusion, and there are libraries for an
> alternative system, stream fusion.
>
> GHC uses an intermediate representation called 'Core', which is a
> mini-Haskell, essentially, that is optimized repeatedly via
> type-preserving transformations. You can inspect this with a number of
> tools, including "ghc-core" (available on Hackage).
Excellent Don, thanks a lot for taking the time to spell this
out for me. I don't understand it all yet, but I know what to
dig into next time I want to observe the compiler's behavior.
Josh
More information about the Glasgow-haskell-users
mailing list