On 12/15/07, Roman Leshchinskiy <[EMAIL PROTECTED]> 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 _______________________________________________ Haskell-Cafe mailing list [email protected] http://www.haskell.org/mailman/listinfo/haskell-cafe
