[LLVMdev] MCJIT/interpreter and iostream
Jaymie Strecker
jstrecker at kosada.com
Sat Jan 26 11:03:07 PST 2013
As of LLVM 3.2, is it possible to use iostream with the MCJIT or interpreter execution engines? I'm getting some errors...
Each of these commands correctly prints "hello":
echo -e '#include <stdio.h>\nint main(){ printf("hello"); }' | clang -cc1 -emit-llvm-bc -x c++ | lli -use-mcjit
echo -e '#include <iostream>\nint main(){ std::cout << "hello" << std::endl; }' | clang -cc1 -emit-llvm-bc -x c++ | lli
Each of these commands results in "LLVM ERROR: Could not resolve external global address: __dso_handle":
echo -e '#include <iostream>\nint main(){ std::cout << "hello" << std::endl; }' | clang -cc1 -emit-llvm-bc -x c++ | lli -force-interpreter=true
echo -e '#include <iostream>\nint main(){ std::cout << "hello" << std::endl; }' | clang -cc1 -emit-llvm-bc -x c++ | lli -use-mcjit
This command correctly prints "hello":
echo -e '#include <iostream>\nextern "C" {void *__dso_handle = NULL;} int main(){ std::cout << "hello" << std::endl; }' | clang -cc1 -emit-llvm-bc -x c++ | lli
This command results in "LLVM ERROR: Tried to execute an unknown external function: _ZNSt8ios_base4InitC1Ev"
echo -e '#include <iostream>\nextern "C" {void *__dso_handle = NULL;} int main(){ std::cout << "hello" << std::endl; }' | clang -cc1 -emit-llvm-bc -x c++ | lli -force-interpreter=true
This command results in "Assertion failed: (FPtr && "Pointer to fn's code was null after getPointerToFunction"), function runFunction, file MCJIT.cpp, line 180."
echo -e '#include <iostream>\nextern "C" {void *__dso_handle = NULL;} int main(){ std::cout << "hello" << std::endl; }' | clang -cc1 -emit-llvm-bc -x c++ | lli -use-mcjit
---
Jaymie Strecker
jstrecker at kosada.com
More information about the llvm-dev
mailing list