Compiler Optimization Comparison Chart
This section presents a comparison chart of the Jikes RVM against the following JVMs.
Inlining
| Category | Optimization | RVM | IBM JDK v6 r0 |
|---|---|---|---|
| Inlining | Trivial Inlining | |
|
| Call graph inlining | |
|
|
| Tail recursion elimination | |
|
|
| Virtual call guard optimizations | |
|
|
| Local optimizations | Local data flow analyses and optimization | |
|
| Register usage optimization | |
|
|
| Simplification of Java idioms | |
|
|
| Control flow optimizations | Code reordering, splitting and removal | |
|
| Loop reduction and inversion | |
|
|
| Loop invariant code motion | |
|
|
| Loop striding | |
|
|
| Loop unrolling | |
|
|
| Loop peeling | |
|
|
| Loop versioning | |
|
|
| Loop specialization | |
|
|
| Exception directed optimization | |
|
|
| Switch analysis | |
|
|
| Global optimizations | Global flow analyses and optimization | |
|
| Partial redundancy elimination | |
|
|
| Escape analysis | |
|
|
| GC and memory allocation optimizations | |
|
|
| Synchronization optimizations | |
|
|
| Native code generation | Small optimization based on architecture characteristics | |
|