[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