[erlang-questions] naive execution of guards

Thomas Lindgren <>
Tue Dec 12 23:06:33 CET 2006


--- Toby Thain <> wrote:

> 
> On 12-Dec-06, at 1:35 PM, Thomas Lindgren wrote:
> 
> >
> > --- "Ulf Wiger (TN/EAB)" <>
> > wrote:
> >
> >>
> >> I was curious to see whether the compiler would
> >> optimize away repeated
> >> use of the length/1 guard, e.g in the following
> >> code:
> > ...
> >> I'm sure it's tricky, and I don't know if the
> above
> >> reasons are strong
> >> enough.
> >
> > Actually, this optimization is ordinary
> elimination of
> > common subexpressions, and so should be relatively
> > straightforward to implement.
> 
> Especially since the subexpressions are already
> guaranteed side- 
> effect free (right?)
> :)
> --Toby

Igzackly, it's one of the few wins from having
restricted guards. CSE of generalized guards or
expressions would have to be more conservative (or
rather, you could optimize _the_same_ guard the same
way, because it's pure, but you can't do such CSE for
any old function call).

Best,
Thomas



 
____________________________________________________________________________________
Do you Yahoo!?
Everyone is raving about the all-new Yahoo! Mail beta.
http://new.mail.yahoo.com



More information about the erlang-questions mailing list