A quick introduction - I'm an undergrad at the University of Wisconsin-Madison, working with the programming languages group there. One of the things we've been developing is a lightweight method for collecting data to aid in debugging following a crash by way of storing collecting about call coverage and path tracing during execution (see
Ohmann, 2013). This data is gathered by transforming LLVM IR through an LLVM opt plugin and then compiling and running the newly-annotated program.
I'm currently investigating how we can apply this work to languages beyond C and C++, and as such I've been searching for a good Java-to-LLVM frontend. I've downloaded the RoboVM source and played around with it and am very impressed with its abilities to create LLVM bitcode from Java bytecode. Right now I am looking into if it is possible to implement our custom pass into RoboVM's compilation pipeline along with the other LLVM passes performed on the code (optimizations, etc). I'm still familiarizing myself with the code, so if there are any obvious roadblocks I'm likely to hit that come to mind, any advice is appreciated.
There is one feature that is missing from RoboVM that we need for our plugin to work correctly, and that is debug information. We don't need full symbols and information about local variables, but rather just source lines and function names. I see there's already discussion on debugging going on, but I just wanted to say that it's a feature that would really help us. (I'll bring this up in the debug thread as well.)
This is really great work you've done, though, and it's been immensely helpful to find a good Java-to-LLVM frontend.