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.