Skip to content

Monthly Archives: April 2006

gcj optimization pass

Today I wrote a GCC optimizer pass. The new pass is specific to gcj and does a simple form of devirtualization. The idea here is that if we have some extra information about a method call, we can turn an indirect virtual call into a direct call. My pass does this in one particular case. […]

LLVM JIT now accessible

I got a nice bug report about the LLVM JIT from Haren Visavadia the other day; his one short test case found 4 or 5 bugs. I decided to stop hoping that sourceforge would start working well, and instead I just moved the JIT cvs repository to sourceware. It is now on sourceware.org, repository /cvs/rhug, […]

LLVM Update

Last night I found the buglet in the JIT preventing “hello world” from working. Now it is time to start more serious testing; first the libgcj test suite and then Mauve.

LLVM Thoughts

On Friday I translated my libjit-based JIT to use LLVM. This took a good part of the day; then I spent a chunk of Saturday debugging it. LLVM has a few drawbacks, as compared to libjit. There’s not really any documentation for how to use LLVM as a JIT, so I ended up reading the […]

libjit and gcj

Last weekend I wrote a JIT for libgcj using libjit. Well, 90% of a JIT anyway. libjit is remarkably simple to use. It took me about a day to write a functioning (if not completely debugged) JIT for java bytecode. On some microbenchmarks it was between 2 and 6 times faster than the existing bytecode […]

99 percent

According to our nightly JAPI run, we hit 99% of 1.4 the other day. Finally! We’ve been hovering above 98% for quite a while, and checking in the patch to make stubs disappear from the JAPI score (thus making it more accurate) didn’t help. At this point it looks like 1.4 completion is mostly about […]