annotate include/llvm/Support/CodeGenCWrappers.h @ 134:3a76565eade5 LLVM5.0.1

update 5.0.1
author mir3636
date Sat, 17 Feb 2018 09:57:20 +0900
parents 803732b1fca8
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
1 //===- llvm/Support/CodeGenCWrappers.h - CodeGen C Wrappers -----*- C++ -*-===//
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
2 //
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
3 // The LLVM Compiler Infrastructure
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
4 //
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
5 // This file is distributed under the University of Illinois Open Source
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
6 // License. See LICENSE.TXT for details.
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
7 //
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
8 //===----------------------------------------------------------------------===//
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
9 //
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
10 // This file defines C bindings wrappers for enums in llvm/Support/CodeGen.h
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
11 // that need them. The wrappers are separated to avoid adding an indirect
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
12 // dependency on llvm/Config/Targets.def to CodeGen.h.
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
13 //
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
14 //===----------------------------------------------------------------------===//
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
15
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
16 #ifndef LLVM_SUPPORT_CODEGENCWRAPPERS_H
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
17 #define LLVM_SUPPORT_CODEGENCWRAPPERS_H
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
18
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
19 #include "llvm-c/TargetMachine.h"
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
20 #include "llvm/ADT/Optional.h"
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
21 #include "llvm/Support/CodeGen.h"
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
22 #include "llvm/Support/ErrorHandling.h"
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
23
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
24 namespace llvm {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
25
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
26 inline Optional<CodeModel::Model> unwrap(LLVMCodeModel Model, bool &JIT) {
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
27 JIT = false;
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
28 switch (Model) {
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
29 case LLVMCodeModelJITDefault:
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
30 JIT = true;
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
31 LLVM_FALLTHROUGH;
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
32 case LLVMCodeModelDefault:
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
33 return None;
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
34 case LLVMCodeModelSmall:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
35 return CodeModel::Small;
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
36 case LLVMCodeModelKernel:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
37 return CodeModel::Kernel;
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
38 case LLVMCodeModelMedium:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
39 return CodeModel::Medium;
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
40 case LLVMCodeModelLarge:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
41 return CodeModel::Large;
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
42 }
121
803732b1fca8 LLVM 5.0
kono
parents: 120
diff changeset
43 return CodeModel::Small;
120
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
44 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
45
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
46 inline LLVMCodeModel wrap(CodeModel::Model Model) {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
47 switch (Model) {
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
48 case CodeModel::Small:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
49 return LLVMCodeModelSmall;
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
50 case CodeModel::Kernel:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
51 return LLVMCodeModelKernel;
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
52 case CodeModel::Medium:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
53 return LLVMCodeModelMedium;
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
54 case CodeModel::Large:
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
55 return LLVMCodeModelLarge;
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
56 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
57 llvm_unreachable("Bad CodeModel!");
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
58 }
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
59
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
60 } // end llvm namespace
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
61
1172e4bd9c6f update 4.0.0
mir3636
parents:
diff changeset
62 #endif