Loop unrolling + fusion ?

Max Bolingbroke batterseapower at hotmail.com
Mon Mar 9 05:58:20 EDT 2009

2009/3/9 Roman Leshchinskiy <rl at cse.unsw.edu.au>:
> The problem here is that this only works for directly recursive functions
> which I, for instance, don't normally use in high-performance code. Most of
> my loops are pipelines of collective combinators like map, filter, fold etc.
> because these are the ones that can be fused automatically. Unless I'm
> misunderstanding something, this approach doesn't handle such cases.

Yep, I think this is an orthogonal piece of functionality. I believe
Claus is concerned with getting the compiler to perform some of the
transformations people currently might want to do for their directly
recursive functions. Of course, you could still UNROLL your unstream
definition, but that doesn't give the user any control over the amount
of unrolling that takes place, which as you have pointed out earlier
may not be a great idea!


More information about the Glasgow-haskell-users mailing list