I'm trying to get MCJIT working but I get the following errors: Full-featured argument passing not supported yet! UNREACHABLE executed at MCJIT.cpp:322! I'm sure the first one will be a problem, but the second one prevents me from testing anything. I don't know how to fix the problem. My code works when using the non-MC JIT, and I added to my EngineBuilder: .setUseMCJIT(true) Reading from a tutorial* I also tried finalizing the engine object: ee->finalizeObject() I'd like to get this working since in the release notes for 3.4 it indicates exception handling has been removed from the old JIT. I need exception handling support and would like to get MCJIT working prior to upgrading to 3.4 later. *http://blog.llvm.org/2013/07/using-mcjit-with-kaleidoscope-tutorial.html -- edA-qa mort-ora-y -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- Sign: Please digitally sign your emails. Encrypt: I'm also happy to receive encrypted mail.
MCJIT::runFunction supports only main-style argument passing but not other cases like the JIT. These types of arguments will work: (int, char**, char**) (int, char**) (int) (void) The general case is not supported since it requires creating a small stub function, compiling and running it on the fly, supported by JIT but not MCJIT. However, with the supported calling sequences, you can probably replace the char** with a void* to a structure so that practically anything can be passed to your function inside the structure. Yaron 2013/11/8 edA-qa mort-ora-y <eda-qa at disemia.com>> I'm trying to get MCJIT working but I get the following errors: > Full-featured argument passing not supported yet! > UNREACHABLE executed at MCJIT.cpp:322! > I'm sure the first one will be a problem, but the second one prevents me > from testing anything. I don't know how to fix the problem. > > My code works when using the non-MC JIT, and I added to my EngineBuilder: > .setUseMCJIT(true) > > Reading from a tutorial* I also tried finalizing the engine object: > ee->finalizeObject() > > I'd like to get this working since in the release notes for 3.4 it > indicates exception handling has been removed from the old JIT. I need > exception handling support and would like to get MCJIT working prior to > upgrading to 3.4 later. > > > *http://blog.llvm.org/2013/07/using-mcjit-with-kaleidoscope-tutorial.html > > -- > edA-qa mort-ora-y > -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > Sign: Please digitally sign your emails. > Encrypt: I'm also happy to receive encrypted mail. > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev >-------------- next part -------------- An HTML attachment was scrubbed... URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131108/4f552dc4/attachment.html>
That makes it more mysterious then since I am indeed only calling a main function. Perhaps I have to invoke it a different way. Here's my call I have now: auto main = linker->getModule()->getFunction( "main" ); std::vector<llvm::GenericValue> args(2); args[0].IntVal = llvm::APInt( platform::abi_int_size, 0 ); args[1].PointerVal = nullptr; llvm::GenericValue gv = ee->runFunction( main, args ); On 08/11/13 11:14, Yaron Keren wrote:> MCJIT::runFunction supports only main-style argument passing but not > other cases like the JIT. > These types of arguments will work: > > (int, char**, char**) > (int, char**) > (int) > (void) > > The general case is not supported since it requires creating a small > stub function, compiling and running it on the fly, supported by JIT but > not MCJIT. > > However, with the supported calling sequences, you can probably replace > the char** with a void* to a structure so that practically anything can > be passed to your function inside the structure. > > Yaron > > > > 2013/11/8 edA-qa mort-ora-y <eda-qa at disemia.com <mailto:eda-qa at disemia.com>> > > I'm trying to get MCJIT working but I get the following errors: > Full-featured argument passing not supported yet! > UNREACHABLE executed at MCJIT.cpp:322! > I'm sure the first one will be a problem, but the second one prevents me > from testing anything. I don't know how to fix the problem. > > My code works when using the non-MC JIT, and I added to my > EngineBuilder: > .setUseMCJIT(true) > > Reading from a tutorial* I also tried finalizing the engine object: > ee->finalizeObject() > > I'd like to get this working since in the release notes for 3.4 it > indicates exception handling has been removed from the old JIT. I need > exception handling support and would like to get MCJIT working prior to > upgrading to 3.4 later. > > > *http://blog.llvm.org/2013/07/using-mcjit-with-kaleidoscope-tutorial.html > > -- > edA-qa mort-ora-y > -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- > Sign: Please digitally sign your emails. > Encrypt: I'm also happy to receive encrypted mail. > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu <mailto:LLVMdev at cs.uiuc.edu> > http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > >-- edA-qa mort-ora-y -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- Sign: Please digitally sign your emails. Encrypt: I'm also happy to receive encrypted mail.