> LLVM has a JIT for this purpose. You generate LLVM IR code (a sort of > generic assembler) and it produces optimized native code ready to be > executed. > > x86-win32 is fine. I don't think so about arm-wince.What's wrong with running LLVM on ARM? It's supposed to support ARM as a target, and since it's written in C it should theoretically compile for ARM. CMake doesn't support Visual Studio 9 for Smart Devices, so I would probably have to go to quite a bit of trouble to create a project file. Still, if I did so, shouldn't it theoretically work?
David Piepgrass <dpiepgrass at mentoreng.com> writes:>> LLVM has a JIT for this purpose. You generate LLVM IR code (a sort of >> generic assembler) and it produces optimized native code ready to be >> executed. >> >> x86-win32 is fine. I don't think so about arm-wince. > > What's wrong with running LLVM on ARM?LLVM can generate code for ARM, but the JIT requires extra target and platform dependent stuff, and that's not done for arm-wince.> It's supposed to support ARM as a target, and since it's written in C > it should theoretically compile for ARM.LLVM is C++, although it has C bindings.> CMake doesn't support Visual Studio 9 for Smart Devices, so I would > probably have to go to quite a bit of trouble to create a project > file. Still, if I did so, shouldn't it theoretically work?The VS project files should be the least of your concerns wrt this issue. You can ask here for a rough estimation of how hard would be to add support for arm-wince and then consider your options.
> > What's wrong with running LLVM on ARM? > > LLVM can generate code for ARM, but the JIT requires extra target and > platform dependent stuff, and that's not done for arm-wince.The release notes say "compiler_rt now supports ARM targets". What else is needed? Keep in mind that I do not need (or want) Clang or any of the optimizers: I just want to generate small sequences of machine code in-memory (on the heap, I assume) and execute them. By the way, LLVM comes with 66 projects (BrainF, bugpoint, Kaleidoscope, llc, etc.) and it's not obvious which one(s) I actually need to accomplish this "simple" use of LLVM. Is there a list of all the targets and what they are for?> > It's supposed to support ARM as a target, and since it's written in C > > it should theoretically compile for ARM. > > LLVM is C++, although it has C bindings.Right, sorry, that's what I meant.