Hi All, <br><br>My name is Lucas, I am a student from ETH Zurich.<br><br>I would like to know what is the advantage of  LLVM as Intermediate representation <br>over Java bytecode and C.<br><br>Let me explain what I am looking for.
<br><br>I am starting a project which will re-write or modify the current Eiffel compiler. The main <br>goal is to provide enough flexibility to enable Dynamic class loading, modular compilation,<br>reflexion and so on. <br>
<br>I wanted to modify the current compiler but my professor wants to re-write it. If I really<br>have to rewrite the compiler I don't want to use C as the intermediate language, we already<br>have three good compilers for that. While making some research I found C-- , CIIL and then
<br>LLVM. After reading some of the papers I decided to suggest it to my professor. <br><br>He then asked me how easier is it to<font size="2">   generate LLVM bytecode rather than C code and<br>why not use Java bytecode instead?
<br><br>I've read a brief comparison between LLVM and JVM presented in [1]. and of all capabilities<br>presented, #4 is interesting but not that convincing I think. #1 is one of the main advantages, <br>However, the main reason the new compiler is being written is that the current one is so
<br>optimized for performance that it has lost a lot of flexibility. So the new compiler by design will<br>be slower, and I am not sure if it could compete with the current one.</font><font size="2"> I am still not sure if 
<br>LLVM is what I am looking for. </font><font size="2">if so how can I defend it against C or Java bytecode?<br><br><br>Thanks in advance,<br>Lucas S Silva<br><br>[1] LLVM:Compilation Framework for Lifelong Program Analysis & Transformation
<br></font><br>