Comment by [email protected]:

FWIW, I remember the day, many years back, when I realized that clinits could have circular dependencies, and had to fix a codegen bug in the compiler to deal with it. We had a fair amount of code at the time, yet only a single case where there was a circular dependency. In practice I suspect they occur quite rarely.

I also suspect we'll see a non-trivial effect on both code size and performance. In addition to getting rid of the rat's nest of clinit functions that call each other and stub themselves out, it would remove a *lot* of lazy clinit calls that are interspersed throughout generated code. It wouldn't surprise me to discover that this was exacting a significant performance cost, as well as defeating inlining (I recently got profile results on a complex piece of code where "nullmethod" accounted for a *lot* of time).


For more information:
http://code.google.com/p/google-web-toolkit/wiki/AggressiveClinitOptimization

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

Reply via email to