[LLVMbugs] [Bug 5649] New: examples/fibonacci doesn't register any JIT targets
bugzilla-daemon at cs.uiuc.edu
bugzilla-daemon at cs.uiuc.edu
Mon Nov 30 14:48:49 PST 2009
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: unassignedbugs at nondot.org
ReportedBy: isomer at gmail.com
CC: llvmbugs at cs.uiuc.edu
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.
More information about the llvm-bugs
mailing list