This is the mail archive of the
mailing list for the Java project.
Two JITs for libgcj
- From: Tom Tromey <tromey at redhat dot com>
- To: GCJ Hackers <java at gcc dot gnu dot org>
- Date: 17 Apr 2006 10:46:17 -0600
- Subject: Two JITs for libgcj
- Reply-to: tromey at redhat dot com
I recently wrote a couple of (experimental) JITs for libgcj. One uses
libjit, the other uses LLVM. I thought I'd send a note about them in
case anybody is interested in experimenting, helping out, etc.
Currently all the code is in the 'libjit' module of the old
sourceforge gcjx repository. I'm not sure whether anonymous cvs works
there (at least cvsweb seems broken at the moment); I suppose I can
email the sources to interested folks.
Both JITs are pretty similar and have similar problems. Neither has
been extensively tested -- only enough to make "hello world" run.
Also, exception handling doesn't work in either one, this is one area
where I could use help.
Each is several times faster than the existing bytecode interpreter,
at least on a couple of microbenchmarks that I tried.
I've been thinking about adding generic JIT support directly to
libgcj, the idea being that we would define a simple interface for JIT
engines to use and a way to dynamically load the actual code. This
way we wouldn't have to build everything in libgcj. This is a little
harder than it sounds since, ideally, we would expose some aspects of
runtime linking to the JIT. Perhaps I'll just move forward with this
and mark the result "experimental"... I'll try to come up with a patch
for folks to comment on.