On Mar 25, 2009, at 5:18 AM, Simon Peyton-Jones wrote:
Indeed GHC does not attempt to retain the order of alternatives,
although
a) it might be possible to do so by paying more attention in
numerous places
b) GHC may do so already, by accident, in certain cases
...
* Which plan performs best is tremendously architecture dependent,
and may well vary a lot between different chips implementing the
same instruction set. It's a losing battle to fix the strategy in
source code.
* More promising might be to say "this is the hot branch". That
information about frequency could in principle be used by the back
end to generate better code. However, I am unsure how
a) to express this info in source code
b) retain it throughout optimisation
The usual compiler heuristic is "backward branches" or "loop edges",
which I would re-interpret in Haskell as "contains a call (any call)
to a function in the same SCC binding group". But I expect for hot
code the effect would indeed be small.
Claus, if you think this thread is worth capturing, then do write a
Commentary page, and I'll check its veracity.
Thanks
Simon
_______________________________________________
Glasgow-haskell-users mailing list
Glasgow-haskell-users@haskell.org
http://www.haskell.org/mailman/listinfo/glasgow-haskell-users