LLVM: include/llvm/Support/CodeGen.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14#ifndef LLVM_SUPPORT_CODEGEN_H
15#define LLVM_SUPPORT_CODEGEN_H
16
17#include
18#include
19
20namespace llvm {
21
22
23 namespace Reloc {
24
26 }
27
28
29 namespace CodeModel {
30
32 }
33
34 namespace PICLevel {
35
37 }
38
39 namespace PIELevel {
41 }
42
43
44 namespace TLSModel {
51 }
52
53
55 None = 0,
56 Less = 1,
57 Default = 2,
59 };
60
61 namespace CodeGenOpt {
62
63
64
65 inline std::optional getLevel(int OL) {
66 if (OL < 0 || OL > 3)
67 return std::nullopt;
69 }
70
71
72
73 inline std::optional parseLevel(char C) {
74 if (C < '0')
75 return std::nullopt;
76 return getLevel(static_cast<int>(C - '0'));
77 }
78 }
79
80
81
82
86 Null
87 };
88
89
91
92
93 namespace ZeroCallUsedRegs {
97
99
100 Skip = 1U << 0,
101
103
105
107
109
111
113
115
117 };
118 }
119
121 None = 0,
122 Sync = 1,
123 Async = 2,
125 };
126
128 Keep = 0,
129 Extern = 1,
130 Invalid = 2,
131 };
132
133 }
134
135#endif
This class is the base class for all object file types.
@ C
The default llvm calling convention, compatible with C.
std::optional< CodeGenOptLevel > getLevel(int OL)
Get the Level identified by the integer OL.
std::optional< CodeGenOptLevel > parseLevel(char C)
Parse C as a single digit integer and get matching CodeGenLevel.
This is an optimization pass for GlobalISel generic memory operations.
@ Async
"Asynchronous" unwind tables (instr precise)
@ Sync
"Synchronous" unwind tables
CodeGenFileType
These enums are meant to be passed into addPassesToEmitFile to indicate what type of file to emit,...
CodeGenOptLevel
Code generation optimization level.
@ Default
The result values are uniform if and only if all operands are uniform.
@ Keep
No function return thunk.
@ Extern
Replace returns with jump to thunk, don't emit thunk.