[LLVMdev] Trouble using the MCJIT: "Target does not support MC emission" error
Ralf Karrenberg
Chareos at gmx.de
Thu Aug 25 10:12:00 PDT 2011
Hi Matt,
I am unsure about MCJIT, but I guess the problem is the same.
Just like when invoking llc, you need to pass the information to use AVX
(llc -mattr=+avx).
I guess the corresponding code should look like this:
llvm::EngineBuilder engineBuilder(module);
engineBuilder.setErrorStr(&eeError);
engineBuilder.setEngineKind(llvm::EngineKind::JIT);
engineBuilder.setUseMCJIT(true);
engineBuilder.setMCPU("corei7-avx");
std::vector<std::string> attrs;
attrs.push_back("avx");
engineBuilder.setMAttrs(attrs);
llvm::ExecutionEngine *ee = engineBuilder.create();
Note that I have just today filed a bug report also related to jitted
AVX: http://llvm.org/bugs/show_bug.cgi?id=10742
Thus, it might very well be the case that I am also mistaken and need to
do something different.
Best,
Ralf
Am 25.08.2011 13:16, schrieb Matt Pharr:
> I'm trying to wire up some code to use the MC-based JIT; my understanding is that it should be able to JIT AVX code (and that the regular JIT cannot). However, I'm getting the error "Target does not support MC emission!" when I call EngineBuilder::create(). I assume that I'm just not doing something necessary for initialization, but I'm not sure what it would be--I am calling all of:
>
> llvm::InitializeNativeTarget();
> llvm::InitializeAllTargetMCs();
> LLVMLinkInMCJIT();
> LLVMLinkInJIT();
>
> and the module I'm trying to load does have a reasonable target:
>
> target triple = "x86_64-apple-darwin11.0.0"
>
> I've attached a short test case that has the sequence of calls that I'm making and one of the bitcode files I'm trying to use. I'd be happy for any guidance or suggestions.
>
> Thanks,
> -matt
>
>
>
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
More information about the llvm-dev
mailing list