| <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" | |
| "http://www.w3.org/TR/html4/strict.dtd"> | |
| <!-- Material used from: HTML 4.01 specs: http://www.w3.org/TR/html401/ --> | |
| <html> | |
| <head> | |
| <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /> | |
| <title>"VMKit" JVM and .Net runtimes for LLVM</title> | |
| <link type="text/css" rel="stylesheet" href="menu.css" /> | |
| <link type="text/css" rel="stylesheet" href="content.css" /> | |
| </head> | |
| <body> | |
| <!--#include virtual="menu.html.incl"--> | |
| <div id="content"> | |
| <h1>Open VMKit Projects</h1> | |
| <p>Here are a few tasks that are available for newcomers to work on, depending | |
| on what your interests are. This list is provided to generate ideas, it is not | |
| intended to be comprehensive. Please ask on llvm-dev for more specifics. </p> | |
| <ul> | |
| <li><b>Port VMKit's JVM to Harmony or OpenJDK</b>: | |
| VMKit currently uses GNU Classpath for the standard Java classes. Interfacing | |
| with another library such as Apache Harmony (http://harmony.apache.org) or | |
| Sun's OpenJDK (http://openjdk.java.net) may help improving support for latest | |
| benchmarks (http://www.spec.org/jvm2008).</li> | |
| </ul> | |
| <p> | |
| On the LLVM side, here are a few interesting projects that would help VMKit: | |
| </p> | |
| <ul> | |
| <li><b>Adaptive Optimization System</b>: | |
| Being able to adaptively optimize JIT-compiled code would dramastically help | |
| the startup time of VMKit. All the non-adaptive bits are already there in LLVM: | |
| baseline compiler (with the -fast command line and the simple register | |
| allocator), optimized compiler (with the linear scan register allocator), and | |
| a full set of optimizations changeable at runtime. What's left is a system that | |
| dynamically lookup the hotness of methods and re-compile with optimizations the | |
| methods that are often executed. | |
| </li> | |
| <li><b>Type-based alias-analysis</b>: | |
| Safe languages such as ones supported by VMKit (Java, C#) benefit a lot from | |
| a type based alias analysis. LLVM currently lacks full support of this feature | |
| for safe languages. | |
| </li> | |
| <li><b>Misceallenous Java-related optimizations</b>: | |
| Removal of array bounds checks, null pointer checks, devirtualization, | |
| inlining, etc. | |
| </li> | |
| </ul> | |
| </div> | |
| </body> | |
| </html> | |