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.

Reply via email to