MSIL codegen

Hello,

I work in Kalray (Montbonnot, France) and I'm PhD student at Universite Joseph Fourier in Grenoble.
We want to use LLVM framework for MSIL code generation, which is part of my thesis.
Currently I'm still reading LLVM's documentation and I've started completing the MSIL backend for running on Mono.

Things that need to be fixed include pointers initialization, call to vararg functions, incorrect stack fill after some function calls, removal of unused local variables, use of the switch capabilities of MSIL and others.

Best regards,
Artur Pietrek

Hi Artur,

Artur Pietrek wrote:

Hello,

I work in Kalray (Montbonnot, France) and I'm PhD student at Universite Joseph Fourier in Grenoble.
We want to use LLVM framework for MSIL code generation, which is part of my thesis.
Currently I'm still reading LLVM's documentation and I've started completing the MSIL backend for running on Mono.

What's the rationale for generating MSIL in your case? Is it to use the .Net libraries or to leverage execution of your programs on a .Net VM? In both cases, have you looked at VMKit? (http://vmkit.llvm.org) Is there a reason why it would not fill your needs?

(Not that I want you to consider improving VMKit for your gsoc, but I'm just wondering why do you want to generate MSIL if it's to run it on Mono).

Thanks!
Nicolas

Nicolas Geoffray wrote:

Hi Artur,

Artur Pietrek wrote:

We want to use LLVM framework for MSIL code generation, which is part of
my thesis.
Currently I'm still reading LLVM's documentation and I've started
completing the MSIL backend for running on Mono.

What's the rationale for generating MSIL in your case? Is it to use the
.Net libraries or to leverage execution of your programs on a .Net VM?
In both cases, have you looked at VMKit? (http://vmkit.llvm.org) Is
there a reason why it would not fill your needs?
  

The main reason is to generate MSIL from C. There are some other solutions for that, but they do not provide good way to link multimodule programs and do not provide as good optimization and analysis framework as LLVM.

(Not that I want you to consider improving VMKit for your gsoc, but I'm
just wondering why do you want to generate MSIL if it's to run it on Mono).
  

Mono is just a reference. Of course the code should also run on .NET and other implementations.
As I've mentioned before, MSIL is just a part of my thesis. The real part is to do "something" later with that "MSIL generated from C" code .

Note that my work has nothing in common with GSoC. We will use LLVM for MSIL code generation so we want to contribute back to the community and as far as we know no one is working on that backend anymore.

Thanks!
Nicolas
  

Regards,
Artur