Sorry I forgot to add code that I use to run code: /* Executes the AST by running the main function */ GenericValue CodeGenContext::runCode() { std::cout << "Running code...\n"; ExecutionEngine *ee = EngineBuilder(module).create(); vector<GenericValue> noargs; GenericValue v = ee->runFunction(mainFunction, noargs); std::cout << "Code was run.\n"; return v; } Il 08/01/2013 16:38, Manuele Conti ha scritto:> Hi Rick, > I had the same problem last week I understand that I didn't > initialized target. > > Cheers, > Manuele > > Il 08/01/2013 16:08, Rick Mann ha scritto: >> 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: >> >> pastebin.com/8cexgPj7 >> >> 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. >> >> pastebin.com/tYq4kWX3 >> >> 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 llvm.cs.uiuc.edu > lists.cs.uiuc.edu/mailman/listinfo/llvmdev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <lists.llvm.org/pipermail/llvm-dev/attachments/20130108/4ecd4cd7/attachment.html>
On Jan 8, 2013, at 8:09 , Manuele Conti <manuele.conti at sirius-es.it> wrote:> Sorry I forgot to add code that I use to run code: > /* Executes the AST by running the main function */ > GenericValue CodeGenContext::runCode() { > std::cout << "Running code...\n"; > ExecutionEngine *ee = EngineBuilder(module).create(); > < > div class="line" id="LC37" style="margin: 0px; padding: 0px 0px 0px 10px; border: 0px;"> > vector<GenericValue> noargs; > GenericValue v = ee ->runFunction(mainFunction, noargs); > std::cout << ; "Code was run.\n"; > return v; > }Isn't that more-or-less exactly what I have? I don't see anything about the target there. -- Rick
Hi Rick, you are right! But can you call this method EngineBuilder::setErrorStr to get creation error? Cheers, Manuele Il 08/01/2013 20:27, Rick Mann ha scritto:> On Jan 8, 2013, at 8:09 , Manuele Conti <manuele.conti at sirius-es.it> wrote: > >> Sorry I forgot to add code that I use to run code: >> /* Executes the AST by running the main function */ >> GenericValue CodeGenContext::runCode() { >> std::cout << "Running code...\n"; >> ExecutionEngine *ee = EngineBuilder(module).create(); >> < >> div class="line" id="LC37" style="margin: 0px; padding: 0px 0px 0px 10px; border: 0px;"> >> vector<GenericValue> noargs; >> GenericValue v = ee ->runFunction(mainFunction, noargs); >> std::cout << ; "Code was run.\n"; >> return v; >> } > Isn't that more-or-less exactly what I have? I don't see anything about the target there. >