LLVM: include/llvm/ExecutionEngine/Orc/JITTargetMachineBuilder.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13#ifndef LLVM_EXECUTIONENGINE_ORC_JITTARGETMACHINEBUILDER_H
14#define LLVM_EXECUTIONENGINE_ORC_JITTARGETMACHINEBUILDER_H
15
23#include
24#include
25#include
26#include
27
28namespace llvm {
29
31
32namespace orc {
33
34
36#ifndef NDEBUG
38#endif
39public:
40
41
42
43
44
46
47
48
49
50
51
53
54
55
56
57
58
59
60
62
63
64
65
66
67
70 if (!TM)
71 return TM.takeError();
72 return (*TM)->createDataLayout();
73 }
74
75
77 this->CPU = std::move(CPU);
78 return *this;
79 }
80
81
82 const std::string &getCPU() const { return CPU; }
83
84
86 this->RM = std::move(RM);
87 return *this;
88 }
89
90
92
93
95 this->CM = std::move(CM);
96 return *this;
97 }
98
99
100 const std::optionalCodeModel::Model &getCodeModel() const { return CM; }
101
102
104 this->OptLevel = OptLevel;
105 return *this;
106 }
107
108
113
114
116 addFeatures(const std::vectorstd::string &FeatureVec);
117
118
120
121
123
124
125
126
127
128
129
131 this->Options = std::move(Options);
132 return *this;
133 }
134
135
137
138
140
141
143
144
146
147private:
149 std::string CPU;
152 std::optionalReloc::Model RM;
153 std::optionalCodeModel::Model CM;
155};
156
157#ifndef NDEBUG
159public:
162 : JTMB(JTMB), Indent(Indent) {}
164
170
171private:
174};
175#endif
176
177}
178}
179
180#endif
Tagged union holding either a T or a Error.
StringRef - Represent a constant reference to a string, i.e.
Manages the enabling and disabling of subtarget specific features.
Triple - Helper class for working with autoconf configuration names.
JITTargetMachineBuilderPrinter(JITTargetMachineBuilder &JTMB, StringRef Indent)
Definition JITTargetMachineBuilder.h:160
void print(raw_ostream &OS) const
friend raw_ostream & operator<<(raw_ostream &OS, const JITTargetMachineBuilderPrinter &JTMBP)
Definition JITTargetMachineBuilder.h:165
A utility class for building TargetMachines for JITs.
Definition JITTargetMachineBuilder.h:35
JITTargetMachineBuilder & setCodeGenOptLevel(CodeGenOptLevel OptLevel)
Set the LLVM CodeGen optimization level.
Definition JITTargetMachineBuilder.h:103
const std::string & getCPU() const
Returns the CPU string.
Definition JITTargetMachineBuilder.h:82
friend class JITTargetMachineBuilderPrinter
Definition JITTargetMachineBuilder.h:37
const std::optional< Reloc::Model > & getRelocationModel() const
Get the relocation model.
Definition JITTargetMachineBuilder.h:91
TargetOptions & getOptions()
Access TargetOptions.
Definition JITTargetMachineBuilder.h:136
const std::optional< CodeModel::Model > & getCodeModel() const
Get the code model.
Definition JITTargetMachineBuilder.h:100
LLVM_ABI JITTargetMachineBuilder & addFeatures(const std::vector< std::string > &FeatureVec)
Add subtarget features.
SubtargetFeatures & getFeatures()
Access subtarget features.
Definition JITTargetMachineBuilder.h:119
Triple & getTargetTriple()
Access Triple.
Definition JITTargetMachineBuilder.h:142
JITTargetMachineBuilder & setOptions(TargetOptions Options)
Set TargetOptions.
Definition JITTargetMachineBuilder.h:130
const Triple & getTargetTriple() const
Access Triple.
Definition JITTargetMachineBuilder.h:145
JITTargetMachineBuilder & setRelocationModel(std::optional< Reloc::Model > RM)
Set the relocation model.
Definition JITTargetMachineBuilder.h:85
const TargetOptions & getOptions() const
Access TargetOptions.
Definition JITTargetMachineBuilder.h:139
static LLVM_ABI Expected< JITTargetMachineBuilder > detectHost()
Create a JITTargetMachineBuilder for the host system.
JITTargetMachineBuilder & setCodeModel(std::optional< CodeModel::Model > CM)
Set the code model.
Definition JITTargetMachineBuilder.h:94
Expected< DataLayout > getDefaultDataLayoutForTarget()
Get the default DataLayout for the target.
Definition JITTargetMachineBuilder.h:68
JITTargetMachineBuilder & setFeatures(StringRef FeatureString)
Set subtarget features.
Definition JITTargetMachineBuilder.h:109
const SubtargetFeatures & getFeatures() const
Access subtarget features.
Definition JITTargetMachineBuilder.h:122
LLVM_ABI JITTargetMachineBuilder(Triple TT)
Create a JITTargetMachineBuilder based on the given triple.
LLVM_ABI Expected< std::unique_ptr< TargetMachine > > createTargetMachine()
Create a TargetMachine.
JITTargetMachineBuilder & setCPU(std::string CPU)
Set the CPU string.
Definition JITTargetMachineBuilder.h:76
This class implements an extremely fast bulk output stream that can only output to a stream.
This is an optimization pass for GlobalISel generic memory operations.
CodeGenOptLevel
Code generation optimization level.