Is it possible to run llvm on mips machine?

I like to get the support of llvm runtime so that I can run some VM
that depends on llvm. I googled porting keyword
and also simply try to cross compile llvm. Just like to know is it
possbile ? Does any modification needed?

Thanks
MK

Hi,

Hi,

I like to get the support of llvm runtime so that I can run some VM
that depends on llvm. I googled porting keyword
and also simply try to cross compile llvm. Just like to know is it
possbile ? Does any modification needed?

You can compile and run llvm tools in a mips machine, but mips+JIT is
not supported.

If I like to do some investigation on the MIPS JIT or some exercise
development on MIPS JIT. Where should I begin? Or what is it's current
status?
I am a completely newbie for llvm development. Just ever used X86 JIT
to simulate something.

Thanks
MK

Hi,

There are numerous emails flying around the list at the moment regarding the state of the JIT. In its current state it is infeasible to add support for another architecture (very difficult to say the least) - there are plans currently being formulated to deal with this and convert the JIT to the new MC architecture, which would allow much easier porting between platforms.

Have a look for the subject "[LLVMdev] MC-JIT Design".

Also, what sort of memory footprint would you require to use the JIT on a MIPS target? The JIT currently (and the next incarnation is also likely to) pulls in an awful lot of fat LLVM libraries that cause a JIT-based compiler to be 8MB-up on x86. MIPS would be substantially larger than this due to its RISC instruction set.

James Molloy
Graduate Compiler Engineer, ARM Ltd.

Hi,

There are numerous emails flying around the list at the moment regarding the state of the JIT. In its current state it is infeasible to add support for another architecture (very difficult to say the least) - there are plans currently being formulated to deal with this and convert the JIT to the new MC architecture, which would allow much easier porting between platforms.

Have a look for the subject "[LLVMdev] MC-JIT Design".

Yes, I read it and still need some time to understand it.

Also, what sort of memory footprint would you require to use the JIT on a MIPS target? The JIT currently (and the next incarnation is also likely to) pulls in an awful lot of fat LLVM libraries that cause a JIT-based compiler to be 8MB-up on x86. MIPS would be substantially larger than this due to its RISC instruction set.

I will use it on a MIPS PC Which have typically more than one Gigebyte
memory. Anyway, I think I should spend some time to understand MC-JIT
more.

Thanks
MK

Hi,

There are numerous emails flying around the list at the moment regarding the state of the JIT. In its current state it is infeasible to add support for another architecture (very difficult to say the least) - there are plans currently being formulated to deal with this and convert the JIT to the new MC architecture, which would allow much easier porting between platforms.

I think infeasible is probably too strong a word. In fact, it would be just as easy to do support in the existing JIT for mips as it would be to add MC work for the target. That said, I'd probably add MC support for the target since that'll be the way forward and will hopefully get a lot of the JIT support for free-ish.

Have a look for the subject "[LLVMdev] MC-JIT Design".

Also, what sort of memory footprint would you require to use the JIT on a MIPS target? The JIT currently (and the next incarnation is also likely to) pulls in an awful lot of fat LLVM libraries that cause a JIT-based compiler to be 8MB-up on x86. MIPS would be substantially larger than this due to its RISC instruction set.

Most MIPS targets these days can have some pretty hefty ram -, he could be wanting to JIT on an old SGI machine, my last one had 8GB of ram :slight_smile:

That said most of the embedded linux boards will generally ship with about a GB or 4.

-eric

Hi,

There are numerous emails flying around the list at the moment regarding the state of the JIT. In its current state it is infeasible to add support for another architecture (very difficult to say the least) - there are plans currently being formulated to deal with this and convert the JIT to the new MC architecture, which would allow much easier porting between platforms.

Have a look for the subject "[LLVMdev] MC-JIT Design".

Yes, I read it and still need some time to understand it.

If you have any questions feel free to ask! :slight_smile:

Also, what sort of memory footprint would you require to use the JIT on a MIPS target? The JIT currently (and the next incarnation is also likely to) pulls in an awful lot of fat LLVM libraries that cause a JIT-based compiler to be 8MB-up on x86. MIPS would be substantially larger than this due to its RISC instruction set.

I will use it on a MIPS PC Which have typically more than one Gigebyte
memory. Anyway, I think I should spend some time to understand MC-JIT
more.

Excellent. You may wish to make sure that there's enough isa support for your target in the mips backend as well. There are definitely plenty of things in that target to work on while the rest of the JIT is coming up around.

-eric

A good start point, as Eric said, would be to add the MC support for
the mips backend, see X86MCCodeEmitter.cpp and X86MCInstLower.cpp for
a more concrete example of how it can be done.

The best place to look now is actually the PowerPC backend. It is fully mc'ized, a lot simpler than X86 and more similar to MIPS from an ISA level.

-Chris