Tips for generating bytecode
Performance techniques used in the Hotspot JVM
What code shapes does the JVM optimize best? Here is a list.
Knowing these optimizations may help language implementors generate bytecodes that run faster. Basic information about bytecodes is in Chapter 7 of the JVM Spec..
In the context of this contextdiscussion, "compiler" = "JIT", and usually more specifically refers to the server (or final tier) JIT.