Compilation problem with JIT/Interpreter

Hi,

I’m yet working on the LLVM ExecutionEngine portability (2.6 release version) and I get two different problems depending on the platform. The first problem concerns compilation on MacOs X (10.5.5) with an X86 processor, when trying to compile my own project containing the ExecutionEngine class and the linker class. I get links problem with “_ffi_type_sint16”, “_ffi_type_sint32”, “ffiInvoke” etc… (The link problems are enclosed to this message) with Unix MakeFile or XCode project generated by CMake (llvm compilation options are get with llvm-config inside CMake). This project has been successfully tested on Linux and windows platforms with the same computer. So my first question is :
Is there additionnals information to provide to the linker when compiling llvm on mac os x?

The second question concerns Yellow Dog Distribution(6.2) on CellSPU processor. Does lli support JIT compilation on CELL? For the moment, it seems to only work with the interpreter (-force-interpreter option).

Many thanks

bt.rtf (1.78 KB)

Hello

Is there additionnals information to provide to the linker when
compiling llvm on mac os x?

Do you have libffi installed somehere?

The second question concerns Yellow Dog Distribution(6.2) on CellSPU
processor. Does lli support JIT compilation on CELL?

No. As far as I can see, there is no JIT for SPU.

Hello

Is there additionnals information to provide to the linker when
compiling llvm on mac os x?

Do you have libffi installed somehere?

Yes i do, 3.0.8 version taken from the official site, but i did’nt provide any information on it into my project’s Makefile as the CMake of LLVM do not provide any information about libffi too. Do I have to insert a libtool command?

The second question concerns Yellow Dog Distribution(6.2) on CellSPU
processor. Does lli support JIT compilation on CELL?

No. As far as I can see, there is no JIT for SPU.

2009/12/8 Anton Korobeynikov <anton@korobeynikov.info>

Jerome:

No, there are no plans to JIT to SPU. That’s considerably more complicated – you’d have to figure out when to JIT to the SPU and live with all of the constraints that the SPU imposes (data reformatting, r/w DMA, ensure your code lives in 256K unless you can manage to interface with the virtual I-cache work.)

Basically, it’s not trivial and it doesn’t quite fit into the current LLVM JIT model.

Moreover, the Cell SPU backend is still incomplete. Given the level of my (day job) management responsibilities, I have less and less time to hack. I’m becoming less enthusiastic about continued development since IBM has all but declared the Cell dead (no one from the Cell team at Supercomputing, so, read between the lines.) A UCLA comp sci group might pick up and finish the backend for their research.

-scooter

Thank very much for this answer,
so my last question will be: is it possible to use the LLVM JIT on a PS3 with Yellow Dog 6.2 distribution, instead of the LLVM interpreter, by using the PPE as it seems to be similar to 64-bit PowerPC processors?

2009/12/18 Scott Michel <scooter.phd@gmail.com>

PPE is really no different from a run-of-the-mill PowerPC (although I’m mentally blocking on whether it’s Power4, Power5 or possibly Power6). You should be able to use LLVM on that platform. You’re somewhat on your own, though, since you’d have to actually compile it yourself.

-scooter