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
