diff options
-rw-r--r-- | llvm/include/llvm/Support/CodeGen.h | 40 | ||||
-rw-r--r-- | llvm/include/llvm/Support/CodeGenCWrappers.h | 64 | ||||
-rw-r--r-- | llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp | 1 | ||||
-rw-r--r-- | llvm/lib/Target/TargetMachineC.cpp | 2 |
4 files changed, 67 insertions, 40 deletions
diff --git a/llvm/include/llvm/Support/CodeGen.h b/llvm/include/llvm/Support/CodeGen.h index 243f2dd7498..0ff3d56363c 100644 --- a/llvm/include/llvm/Support/CodeGen.h +++ b/llvm/include/llvm/Support/CodeGen.h @@ -15,9 +15,6 @@ #ifndef LLVM_SUPPORT_CODEGEN_H #define LLVM_SUPPORT_CODEGEN_H -#include "llvm-c/TargetMachine.h" -#include "llvm/Support/ErrorHandling.h" - namespace llvm { // Relocation model types. @@ -27,6 +24,7 @@ namespace llvm { // Code model types. namespace CodeModel { + // Sync changes with CodeGenCWrappers.h. enum Model { Default, JITDefault, Small, Kernel, Medium, Large }; } @@ -54,42 +52,6 @@ namespace llvm { }; } - // Create wrappers for C Binding types (see CBindingWrapping.h). - inline CodeModel::Model unwrap(LLVMCodeModel Model) { - switch (Model) { - case LLVMCodeModelDefault: - return CodeModel::Default; - case LLVMCodeModelJITDefault: - return CodeModel::JITDefault; - case LLVMCodeModelSmall: - return CodeModel::Small; - case LLVMCodeModelKernel: - return CodeModel::Kernel; - case LLVMCodeModelMedium: - return CodeModel::Medium; - case LLVMCodeModelLarge: - return CodeModel::Large; - } - return CodeModel::Default; - } - - inline LLVMCodeModel wrap(CodeModel::Model Model) { - switch (Model) { - case CodeModel::Default: - return LLVMCodeModelDefault; - case CodeModel::JITDefault: - return LLVMCodeModelJITDefault; - case CodeModel::Small: - return LLVMCodeModelSmall; - case CodeModel::Kernel: - return LLVMCodeModelKernel; - case CodeModel::Medium: - return LLVMCodeModelMedium; - case CodeModel::Large: - return LLVMCodeModelLarge; - } - llvm_unreachable("Bad CodeModel!"); - } } // end llvm namespace #endif diff --git a/llvm/include/llvm/Support/CodeGenCWrappers.h b/llvm/include/llvm/Support/CodeGenCWrappers.h new file mode 100644 index 00000000000..a97f1a4ec19 --- /dev/null +++ b/llvm/include/llvm/Support/CodeGenCWrappers.h @@ -0,0 +1,64 @@ +//===- llvm/Support/CodeGenCWrappers.h - CodeGen C Wrappers -----*- C++ -*-===// +// +// The LLVM Compiler Infrastructure +// +// This file is distributed under the University of Illinois Open Source +// License. See LICENSE.TXT for details. +// +//===----------------------------------------------------------------------===// +// +// This file defines C bindings wrappers for enums in llvm/Support/CodeGen.h +// that need them. The wrappers are separated to avoid adding an indirect +// dependency on llvm/Config/Targets.def to CodeGen.h. +// +//===----------------------------------------------------------------------===// + +#ifndef LLVM_SUPPORT_CODEGENCWRAPPERS_H +#define LLVM_SUPPORT_CODEGENCWRAPPERS_H + +#include "llvm-c/TargetMachine.h" +#include "llvm/Support/ErrorHandling.h" +#include "llvm/Support/CodeGenCWrappers.h" + +namespace llvm { + +inline CodeModel::Model unwrap(LLVMCodeModel Model) { + switch (Model) { + case LLVMCodeModelDefault: + return CodeModel::Default; + case LLVMCodeModelJITDefault: + return CodeModel::JITDefault; + case LLVMCodeModelSmall: + return CodeModel::Small; + case LLVMCodeModelKernel: + return CodeModel::Kernel; + case LLVMCodeModelMedium: + return CodeModel::Medium; + case LLVMCodeModelLarge: + return CodeModel::Large; + } + return CodeModel::Default; +} + +inline LLVMCodeModel wrap(CodeModel::Model Model) { + switch (Model) { + case CodeModel::Default: + return LLVMCodeModelDefault; + case CodeModel::JITDefault: + return LLVMCodeModelJITDefault; + case CodeModel::Small: + return LLVMCodeModelSmall; + case CodeModel::Kernel: + return LLVMCodeModelKernel; + case CodeModel::Medium: + return LLVMCodeModelMedium; + case CodeModel::Large: + return LLVMCodeModelLarge; + } + llvm_unreachable("Bad CodeModel!"); +} + +} // end llvm namespace + +#endif + diff --git a/llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp b/llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp index 3b2eb16c024..d6b209a91d7 100644 --- a/llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp +++ b/llvm/lib/ExecutionEngine/ExecutionEngineBindings.cpp @@ -17,6 +17,7 @@ #include "llvm/ExecutionEngine/RTDyldMemoryManager.h" #include "llvm/IR/DerivedTypes.h" #include "llvm/IR/Module.h" +#include "llvm/Support/CodeGenCWrappers.h" #include "llvm/Support/ErrorHandling.h" #include "llvm/Target/TargetOptions.h" #include <cstring> diff --git a/llvm/lib/Target/TargetMachineC.cpp b/llvm/lib/Target/TargetMachineC.cpp index 25bfcbe3a22..9405ba7f295 100644 --- a/llvm/lib/Target/TargetMachineC.cpp +++ b/llvm/lib/Target/TargetMachineC.cpp @@ -18,7 +18,7 @@ #include "llvm/IR/DataLayout.h" #include "llvm/IR/Module.h" #include "llvm/IR/LegacyPassManager.h" -#include "llvm/Support/CodeGen.h" +#include "llvm/Support/CodeGenCWrappers.h" #include "llvm/Support/FileSystem.h" #include "llvm/Support/FormattedStream.h" #include "llvm/Support/Host.h" |