[LLVMdev] ExecutionEngine always comes back NULL

Kaylor, Andrew andrew.kaylor at intel.com
Tue Jan 8 13:55:21 PST 2013

Hi Rick,

You need to include 'llvm/ExecutionEngine/JIT.h' (or 'llvm/ExecutionEngine/JIT.h' if you want that engine) from your main file.  Including that file forces the JIT static constructor to be linked into your executable.  Without it, the JIT static constructor gets optimized out and you get the result you're seeing.


-----Original Message-----
From: llvmdev-bounces at cs.uiuc.edu [mailto:llvmdev-bounces at cs.uiuc.edu] On Behalf Of Rick Mann
Sent: Tuesday, January 08, 2013 7:09 AM
To: llvmdev at cs.uiuc.edu
Subject: [LLVMdev] ExecutionEngine always comes back NULL

I wrote a little OS X app to assemble some LLVM (human-readable) code and run it. Unfortunately, my ExecutionEngine won't create. Just comes back NULL.

This is the code that builds it:


This is the code it seems to successfully assemble, but it can't build the ExecutionEngine. You can see I tried several different ways of building it.


The module seems to get created properly (you can see the source and the result of mod->dump()).

Is there a dylib that I need to include that has some init code that's otherwise not invoked? How can I tell why my ExecutionEngine didn't create? Is there an error code somewhere?

I based my code off the HowTouseJIT.cpp example, llvm-as.cpp, and lli.cpp. I must've overlooked something, but I'm not sure what.

Any ideas? Thanks!


LLVM Developers mailing list
LLVMdev at cs.uiuc.edu         http://llvm.cs.uiuc.edu

More information about the llvm-dev mailing list