Some background - some optimizers run themselves in a loop on each
pass of the optimizer.  During some performance investigations last
year, we tried to get some of these extra loops out, but Pruner was a
tough nut to crack.  The nasty thing about this looping behavior is
that the last pass through is always wasted (you know to exit the loop
when the optimizer doesn't change the tree.)

I've been reading the code and talking to Scott about it.  The loop
being removed is the while() loop in execImpl().  The "jitter" is the
fact that the ControlFlowAnalyzer might return one result for liveness
before the Pruner runs, and a different result after Pruner runs.  If
you don't loop inside of Pruner, then the entire optimization pass may
have to run extra times.

On Fri, May 13, 2011 at 11:03 AM,  <[email protected]> wrote:
> Can you clarify what you mean by "Pruner runs only once"?  It looks like
> it will still be invoked multiple times by the optimizeLoop, etc.  Can
> you provide some background on the "jitter" phenomena?
>
> http://gwt-code-reviews.appspot.com/1436802/
>



-- 
Eric Z. Ayers
Google Web Toolkit, Atlanta, GA USA

-- 
http://groups.google.com/group/Google-Web-Toolkit-Contributors

Reply via email to