LLVM  6.0.0svn
CodeGenCWrappers.h
Go to the documentation of this file.
1 //===- llvm/Support/CodeGenCWrappers.h - CodeGen C Wrappers -----*- C++ -*-===//
2 //
3 // The LLVM Compiler Infrastructure
4 //
5 // This file is distributed under the University of Illinois Open Source
6 // License. See LICENSE.TXT for details.
7 //
8 //===----------------------------------------------------------------------===//
9 //
10 // This file defines C bindings wrappers for enums in llvm/Support/CodeGen.h
11 // that need them. The wrappers are separated to avoid adding an indirect
12 // dependency on llvm/Config/Targets.def to CodeGen.h.
13 //
14 //===----------------------------------------------------------------------===//
15 
16 #ifndef LLVM_SUPPORT_CODEGENCWRAPPERS_H
17 #define LLVM_SUPPORT_CODEGENCWRAPPERS_H
18 
19 #include "llvm-c/TargetMachine.h"
20 #include "llvm/ADT/Optional.h"
21 #include "llvm/Support/CodeGen.h"
23 
24 namespace llvm {
25 
27  JIT = false;
28  switch (Model) {
30  JIT = true;
33  return None;
34  case LLVMCodeModelSmall:
35  return CodeModel::Small;
37  return CodeModel::Kernel;
39  return CodeModel::Medium;
40  case LLVMCodeModelLarge:
41  return CodeModel::Large;
42  }
43  return CodeModel::Small;
44 }
45 
47  switch (Model) {
48  case CodeModel::Small:
49  return LLVMCodeModelSmall;
50  case CodeModel::Kernel:
51  return LLVMCodeModelKernel;
52  case CodeModel::Medium:
53  return LLVMCodeModelMedium;
54  case CodeModel::Large:
55  return LLVMCodeModelLarge;
56  }
57  llvm_unreachable("Bad CodeModel!");
58 }
59 
60 } // end llvm namespace
61 
62 #endif
const NoneType None
Definition: None.h:24
Compute iterated dominance frontiers using a linear time algorithm.
Definition: AllocatorList.h:24
Attribute unwrap(LLVMAttributeRef Attr)
Definition: Attributes.h:195
LLVMCodeModel
Definition: TargetMachine.h:45
#define llvm_unreachable(msg)
Marks that the current location is not supposed to be reachable.
LLVMAttributeRef wrap(Attribute Attr)
Definition: Attributes.h:190
#define LLVM_FALLTHROUGH
LLVM_FALLTHROUGH - Mark fallthrough cases in switch statements.
Definition: Compiler.h:235