[LLVMdev] UNREACHABLE executed at MCJIT.cpp:322!

Yaron Keren yaron.keren at gmail.com
Fri Nov 8 09:12:49 PST 2013


Something must be wrong with the Function Type. Try to debug into
runFunction to see which if condition fails.
Just a guess, if this is on 64 bit system the first argument type may be
int64 but needs to be int32.

Yaron



2013/11/8 edA-qa mort-ora-y <eda-qa at disemia.com>

> 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.
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20131108/272ad662/attachment.html>


More information about the llvm-dev mailing list