fix PR5649 by making fib use the JIT instead of the interpreter, patch by Perry Lorier!
authorChris Lattner <sabre@nondot.org>
Tue, 1 Dec 2009 01:56:27 +0000 (01:56 +0000)
committerChris Lattner <sabre@nondot.org>
Tue, 1 Dec 2009 01:56:27 +0000 (01:56 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@90186 91177308-0d34-0410-b5e6-96231b3b80d8

examples/Fibonacci/fibonacci.cpp

index b1a4691a9f6ccc2cf43112ee25ea0e2505430e72..077cdd0f5d6816aba26c3e3b5327fe5b64321004 100644 (file)
@@ -34,6 +34,7 @@
 #include "llvm/ExecutionEngine/Interpreter.h"
 #include "llvm/ExecutionEngine/GenericValue.h"
 #include "llvm/Support/raw_ostream.h"
+#include "llvm/Target/TargetSelect.h"
 using namespace llvm;
 
 static Function *CreateFibFunction(Module *M, LLVMContext &Context) {
@@ -92,6 +93,7 @@ static Function *CreateFibFunction(Module *M, LLVMContext &Context) {
 int main(int argc, char **argv) {
   int n = argc > 1 ? atol(argv[1]) : 24;
 
+  InitializeNativeTarget();
   LLVMContext Context;
   
   // Create some module to put our function into it.
@@ -101,7 +103,13 @@ int main(int argc, char **argv) {
   Function *FibF = CreateFibFunction(M, Context);
 
   // Now we going to create JIT
-  ExecutionEngine *EE = EngineBuilder(M).create();
+  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;
+  }
 
   errs() << "verifying... ";
   if (verifyModule(*M)) {