[Haskell-cafe] #haskell works

Tim Chevalier catamorphism at gmail.com
Sat Dec 15 19:25:38 EST 2007


On 12/15/07, Roman Leshchinskiy <rl at cse.unsw.edu.au> wrote:
> While this is true in general, loop optimisations are not a particularly
> good example, IMO. For them to be effective, you often have to consider
> things like instruction scheduling and register pressure which you can't
> really do on the Core level.

Fair enough for loop optimizations in general, but I think the point
about loop unrolling from the "Secrets of the GHC Inliner" paper that
I was referring to gives a counterexample to that. In imperative
languages, loop unrolling and inlining would be thought of as distinct
and very different optimizations -- in a pure functional language,
they can be unified. It seems to me that working in a pure functional
language makes it easy to write high-level optimizations that can be
specified very simply on a level like the level of Core that can then
be amplified by a smart backend that takes things like instruction
scheduling into account.

Cheers,
Tim

-- 
Tim Chevalier * catamorphism.org * Often in error, never in doubt
"Stupidity combined with arrogance and a huge ego will get you a long
way." -- Chris Lowe


More information about the Haskell-Cafe mailing list