summaryrefslogtreecommitdiffstats
path: root/gnu/llvm/examples/Fibonacci/fibonacci.cpp
diff options
context:
space:
mode:
authorpatrick <patrick@openbsd.org>2017-01-14 19:55:43 +0000
committerpatrick <patrick@openbsd.org>2017-01-14 19:55:43 +0000
commitbd3306aecb3a15e8967143b8cdbbccf2b1b19b74 (patch)
tree309a8132b44564b9e634c0da6815187ce8eab27c /gnu/llvm/examples/Fibonacci/fibonacci.cpp
parentkillp -a should not kill the window if only one pane. (diff)
downloadwireguard-openbsd-bd3306aecb3a15e8967143b8cdbbccf2b1b19b74.tar.xz
wireguard-openbsd-bd3306aecb3a15e8967143b8cdbbccf2b1b19b74.zip
Import LLVM 3.9.1 including clang and lld.
Diffstat (limited to 'gnu/llvm/examples/Fibonacci/fibonacci.cpp')
-rw-r--r--gnu/llvm/examples/Fibonacci/fibonacci.cpp17
1 files changed, 15 insertions, 2 deletions
diff --git a/gnu/llvm/examples/Fibonacci/fibonacci.cpp b/gnu/llvm/examples/Fibonacci/fibonacci.cpp
index ecb49eb92e1..16e52bf0409 100644
--- a/gnu/llvm/examples/Fibonacci/fibonacci.cpp
+++ b/gnu/llvm/examples/Fibonacci/fibonacci.cpp
@@ -23,16 +23,29 @@
//
//===----------------------------------------------------------------------===//
+#include "llvm/ADT/APInt.h"
#include "llvm/IR/Verifier.h"
+#include "llvm/ExecutionEngine/ExecutionEngine.h"
#include "llvm/ExecutionEngine/GenericValue.h"
-#include "llvm/ExecutionEngine/Interpreter.h"
+#include "llvm/ExecutionEngine/MCJIT.h"
+#include "llvm/IR/Argument.h"
+#include "llvm/IR/BasicBlock.h"
#include "llvm/IR/Constants.h"
#include "llvm/IR/DerivedTypes.h"
+#include "llvm/IR/Function.h"
+#include "llvm/IR/InstrTypes.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/LLVMContext.h"
#include "llvm/IR/Module.h"
+#include "llvm/IR/Type.h"
+#include "llvm/Support/Casting.h"
#include "llvm/Support/TargetSelect.h"
#include "llvm/Support/raw_ostream.h"
+#include <algorithm>
+#include <cstdlib>
+#include <memory>
+#include <string>
+#include <vector>
using namespace llvm;
@@ -77,7 +90,6 @@ static Function *CreateFibFunction(Module *M, LLVMContext &Context) {
CallInst *CallFibX2 = CallInst::Create(FibF, Sub, "fibx2", RecurseBB);
CallFibX2->setTailCall();
-
// fib(x-1)+fib(x-2)
Value *Sum = BinaryOperator::CreateAdd(CallFibX1, CallFibX2,
"addresult", RecurseBB);
@@ -92,6 +104,7 @@ int main(int argc, char **argv) {
int n = argc > 1 ? atol(argv[1]) : 24;
InitializeNativeTarget();
+ InitializeNativeTargetAsmPrinter();
LLVMContext Context;
// Create some module to put our function into it.