[llvm-dev] HowToRunJIT doesn't work on windows 10 x64
雷景然 via llvm-dev
llvm-dev at lists.llvm.org
Tue Nov 1 09:33:19 PDT 2016
Hi All,
First, I want to show you a bug which I found at HowToUseJIT.cpp.
This is correct one, I changed locally:
----------------------------
outs() << "We just constructed this LLVM module:\n\n" << *M;
outs() << "\n\nRunning foo on : " << M->getTargetTriple();
outs().flush();
// Now we create the JIT.
ExecutionEngine* EE = EngineBuilder(std::move(Owner)).create();
----------------------------
And then, the original version is :
----------------------------
// Now we create the JIT.
ExecutionEngine* EE = EngineBuilder(std::move(Owner)).create();
outs() << "We just constructed this LLVM module:\n\n" << *M;
outs() << "\n\nRunning foo on : " << M->getTargetTriple();
outs().flush();
----------------------------
Because `Owner` is move into `EE`, and `M` is came from `Owner`, so the original version is incorrect.
I had change this locally. :)
Finally, My question is : why I got the error below when I ran the HowToUseJIT
-----------------------------------------
We just constructed this LLVM module:
; ModuleID = 'test'
source_filename = "test"
target triple = "x86_64-pc-windows-msvc"
define i32 @add1(i32 %AnArg) {
EntryBlock:
%0 = add i32 1, %AnArg
ret i32 %0
}
define i32 @foo() {
EntryBlock:
%0 = tail call i32 @add1(i32 10)
ret i32 %0
}
Running foo on : x86_64-pc-windows-msvc
LLVM ERROR: Target does not support MC emission!
Press any key to continue . . .
-----------------------------------------
My HowToUseJIT.cpp code is below:
--------------------------
int main() {
...
M->setTargetTriple(sys::getDefaultTargetTriple());
outs() << "We just constructed this LLVM module:\n\n" << *M;
outs() << "\n\nRunning foo on : " << M->getTargetTriple();
outs().flush();
ForceMCJITLinking::ForceMCJITLinking();
// Now we create the JIT.
ExecutionEngine* EE = EngineBuilder(std::move(Owner)).create();
// Call the `foo' function with no arguments:
std::vector<GenericValue> noargs;
GenericValue gv = EE->runFunction(FooF, noargs);
...
}
--------------------------
Best Regards.
Leagmain (Jingran.Lear)
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20161102/01cd5d28/attachment.html>
More information about the llvm-dev
mailing list