reference, declaration → definition definition → references, declarations, derived classes, virtual overrides reference to multiple definitions → definitions unreferenced |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 | //===- llvm/Target/CodeGenCWrappers.h - CodeGen C Wrappers ------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // 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_TARGET_CODEGENCWRAPPERS_H #define LLVM_TARGET_CODEGENCWRAPPERS_H #include "llvm-c/TargetMachine.h" #include "llvm/ADT/Optional.h" #include "llvm/Support/CodeGen.h" #include "llvm/Support/ErrorHandling.h" namespace llvm { inline Optional<CodeModel::Model> unwrap(LLVMCodeModel Model, bool &JIT) { JIT = false; switch (Model) { case LLVMCodeModelJITDefault: JIT = true; LLVM_FALLTHROUGH; case LLVMCodeModelDefault: return None; case LLVMCodeModelTiny: return CodeModel::Tiny; case LLVMCodeModelSmall: return CodeModel::Small; case LLVMCodeModelKernel: return CodeModel::Kernel; case LLVMCodeModelMedium: return CodeModel::Medium; case LLVMCodeModelLarge: return CodeModel::Large; } return CodeModel::Small; } inline LLVMCodeModel wrap(CodeModel::Model Model) { switch (Model) { case CodeModel::Tiny: return LLVMCodeModelTiny; case CodeModel::Small: return LLVMCodeModelSmall; case CodeModel::Kernel: return LLVMCodeModelKernel; case CodeModel::Medium: return LLVMCodeModelMedium; case CodeModel::Large: return LLVMCodeModelLarge; } llvm_unreachable("Bad CodeModel!"); } } // namespace llvm #endif |