<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'><div dir='ltr'>
Wondering if you've gotten any further answering the question you pose below?<br><br>I also am interested in being able to generate a JVM backend, but not departing, as you are, from coding in java itself, but rather as a means to integrate my own custom vm with Java and be able to produce and consume java code easily from my custom environment.<br><br>Just curios if you made any progress answering this question for yourself and the final one you pose:  "Is LLVM for me?"<br><br><br><br><pre>Sorry if I'm repeating something that was already said.<br><br>I was just thinking "why the heck do I seem headed for JVM generation if <br>what I want to use is LLVM", and this is the result:<br><br>I'm coming from a Java background. I'm using Eclipse, I'm used to the <br>syntax highlighting, cross referencing and refactoring support that <br>Eclipse offers.<br>I know I will want to have the same infrastructure for my language, and <br>I want it written in my language. I WILL need a JVM backend, no matter what.<br><br>Now, I'd still love to use LLVM. It has a lot to offer for the phases <br>"above" code generation. I don't need register allocation, but I'd like <br>to make use of common constant elimination, loop unrolling, inlining, or <br>the pass management infrastructure; that's a whole lot of code I don't <br>need to write.<br>And when it comes to generating raw machine code, I can confidently say: <br>develop in Eclipse and run the stuff as JVM code, but deploy using the <br>machine-code backend provided by LLVM.<br><br>So my conclusion is:<br>To make LLVM attractive for us Java-based language designers, we need <br>the means to write a JVM backend.<br>The actual backend is easy, libraries for class file and JAR generation <br>exist.<br>I'd need help for:<br>* Determining where exactly the line is drawn between "this LLVM <br>component is useful for JVM bytecode generation" and "this LLVM <br>component isnt". (Constant folding would be, register allocation would <br>not, but there's a lot of gray areas between these two.)<br>* Not being a JNI or C++ expert, building the JNI infrastructure that <br>would allow calling LLVM components from Java.<br>* Not being a true Eclipse expert, wrapping LLVM binaries as Eclipse <br>plugins. Eclipse expects plugins to be available for download via HTTP, <br>with some XML that describes dependencies. Setting this up would be <br>easy, getting the details right would be work.<br><br>That's just my specific skillset, other language designers might have <br>different ones, but I guess it is not very likely that the exact right <br>combination will come up easily. There aren't many people around who're <br>experts in C++, Java, and Eclipse.<br><br>Oh, and the question I'm having is: Is LLVM for me?<br><br>Regards,<br>Jo<br></pre><br>                                      </div></body>
</html>