The attached patch tweaks ControlFlowAnalyzer to do its upref visiting
eagerly.  This results in 1-permutation Showcase compiling about 1-2
seconds faster for me, an improvement of 3-6%.

The reason for upref visiting at all is that if you rescue a virtual
method, you also need rescue any overriding methods in subclasses.
The current algorithm does this by scanning the whole program, in a
loop, to find any such overriding methods.  The attached patch rescues
these methods eagerly.  It takes three changes to make this happen:

1. When a method is rescued, immediately scan all overriding methods.
2. To make #1 efficient, build a reverse index of method overriding
when the analyzer starts up.
3. When a type is rescued, immediately scan all of its methods, just
like upref visitor did.

It also adds PerfLogger calls to GWTCompiler, to make it easy to time
an entire compile.

Can you review it Scott, or toss it to someone else?

-Lex

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

Attachment: eagerUpRef-r3983.patch
Description: Binary data

Reply via email to