http://llvm.org/bugs/show_bug.cgi?id=5649
Summary: examples/fibonacci doesn't register any JIT targets
Product: new-bugs
Version: 2.6
Platform: PC
OS/Version: Linux
Status: NEW
Severity: minor
Priority: P2
Component: new bugs
AssignedTo: [email protected]
ReportedBy: [email protected]
CC: [email protected]
Created an attachment (id=3892)
--> (http://llvm.org/bugs/attachment.cgi?id=3892)
Patch to register targets, force JIT, and produce a human readable error if it
goes wrong.
examples/Fibonacci.cpp is an example demonstrating JIT, however it doesn't call
InitializeNativeTarget(); and thus will always end up falling back on the
interpreter.
This can be verified with changing:
ExecutionEngine *EE = EngineBuilder(M).create();
to:
std::string errStr;
ExecutionEngine *EE =
EngineBuilder(M).setErrorStr(&errStr).setEngineKind(EngineKind::JIT).create();
if (!EE) {
errs() << argv[0] << ": Failed to construct ExecutionEngine: " << errStr <<
"\n";
return 1;
}
This produces the error:
./fibonacci: Failed to construct ExecutionEngine: Unable to find target for
this triple (no targets are registered)
This can be fixed by adding the line:
InitializeNativeTarget();
and adding the include:
#include "llvm/Target/TargetSelect.h"
As examples/fibonacci is in theory an example on using JIT, not registering any
JIT targets seems to be an "ugly blunder".
--
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.
_______________________________________________
LLVMbugs mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/llvmbugs