llvm_common.h 1.71 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11
/*!
 *  Copyright (c) 2017 by Contributors
 * \file llvm_common.h
 * \brief Common utilities for llvm initialization.
 */
#ifndef TVM_CODEGEN_LLVM_LLVM_COMMON_H_
#define TVM_CODEGEN_LLVM_LLVM_COMMON_H_
#ifdef TVM_LLVM_VERSION

#include <llvm/ExecutionEngine/MCJIT.h>

12
#include <llvm/Bitcode/BitcodeWriter.h>
13
#include <llvm/Support/SourceMgr.h>
14

15
#include <llvm/IR/Value.h>
16
#include <llvm/IR/Intrinsics.h>
17 18 19 20 21 22 23 24 25 26 27 28 29 30
#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/IRBuilder.h>
#include <llvm/IR/Instructions.h>
#include <llvm/IR/LLVMContext.h>
#include <llvm/IR/Module.h>
#include <llvm/IR/Type.h>
#include <llvm/IR/Intrinsics.h>
#include <llvm/IR/MDBuilder.h>

#include <llvm/IR/LegacyPassManager.h>
31
#include <llvm/Transforms/Utils/ModuleUtils.h>
32 33 34
#include <llvm/Transforms/IPO/PassManagerBuilder.h>
#include <llvm/Transforms/IPO.h>

35
#include <llvm/Support/raw_ostream.h>
36
#include <llvm/Support/Casting.h>
37
#include <llvm/Support/TargetRegistry.h>
38
#include <llvm/Support/TargetSelect.h>
39 40
#include <llvm/Target/TargetMachine.h>
#include <llvm/Target/TargetOptions.h>
41
#include <llvm/IRReader/IRReader.h>
42 43 44

#include <utility>
#include <string>
45 46 47 48 49 50 51 52 53 54

namespace tvm {
namespace codegen {

/*!
 * \brief Initialize LLVM on this process,
 *  can be called multiple times.
 */
void InitializeLLVM();

55 56
/*!
 * \brief Get target machine from target_str string.
57
 * \param target_str Target string, in format "llvm -target=xxx -mcpu=xxx"
58
 *
59
 * \return target machine
60
 */
61 62
llvm::TargetMachine*
GetLLVMTargetMachine(const std::string& target_str);
63

64 65 66 67
}  // namespace codegen
}  // namespace tvm
#endif  // TVM_LLVM_VERSION
#endif  // TVM_CODEGEN_LLVM_LLVM_COMMON_H_