GWT itself hasn't changed substantially in many years - improvements have mostly been language features, adding support for incremental compilation, the jsinterop system, etc, so for the most part the optimizations haven't changed.
That said, the best way is almost certainly to take a look at the source code itself, and the JavaToJavaScriptCompiler class has the high level aspects of this. This is a different way to look at the current process, but might give you helpful insights in contrast to the link you shared. Starting in the compilePermutation() method: https://github.com/gwtproject/gwt/blob/master/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java#L304-L467 This method is well commented, showing the order of operations that take place. Optimizations on Java source itself largely happens at the optimizeJava() method, which itself does very little, just check if it should run, and if so, invokes optimizeJavaToFixedPoint(), then applies one last optimization: RemoveEmptySuperCalls. optimizeJavaToFixedPoint() can be found at https://github.com/gwtproject/gwt/blob/master/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java#L1415-L1457 though it largely just invokes optimizeJavaOneTime in a loop until the code stops changing, and follows up with one optional run to the DataflowOptimizer. optimizeJavaOneTime can be found at https://github.com/gwtproject/gwt/blob/master/dev/core/src/com/google/gwt/dev/jjs/JavaToJavaScriptCompiler.java#L1492-L1517 Here you can see the optimizations that happen in the main optimization loop, with a small handful of notes on the order that these must take place. After this we're back to the compilerPermutation method, which finishes normalizing the code to JS and continuing to optimize this lightly, though not in a loop, just a few specific passes. On Thursday, October 1, 2020 at 3:52:04 PM UTC-5 George Georgovassilis wrote: > Is there an up-to-date documentation of optimisations the compiler > applies? An older page [1] discusses some topics but it isn't clear what of > that has been implemented. > (apologies for posting here, I asked this question on the user forum [2] > but didn't get any replies) > > [1] > https://github.com/gwtproject/old_google_code_wiki/blob/master/AdvancedCompilerOptimizations.wiki.md > [2] https://groups.google.com/g/google-web-toolkit/c/aOBvgbKjjcw > > -- You received this message because you are subscribed to the Google Groups "GWT Contributors" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/google-web-toolkit-contributors/35d8b2c8-59a7-4e4c-a252-08ba7cb07fe6n%40googlegroups.com.
