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.