LLVM: include/llvm/Transforms/Utils/SymbolRewriter.h Source File (original) (raw)

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32#ifndef LLVM_TRANSFORMS_UTILS_SYMBOLREWRITER_H

33#define LLVM_TRANSFORMS_UTILS_SYMBOLREWRITER_H

34

37#include

38#include

39#include

40

41namespace llvm {

42

45

46namespace yaml {

47

52

53}

54

56

57

58

59

60

61

62

63

64

65

66

67

69public:

76

80

82

84

85protected:

87

88private:

89 const Type Kind;

90};

91

93

95public:

98

99private:

103 bool parseRewriteFunctionDescriptor(yaml::Stream &Stream,

107 bool parseRewriteGlobalVariableDescriptor(yaml::Stream &Stream,

114};

115

116}

117

119public:

121

123 Descriptors.splice(Descriptors.begin(), DL);

124 }

125

127

128

130

131private:

132 LLVM_ABI void loadAndParseMapFiles();

133

135};

136

137}

138

139#endif

MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL

This header defines various interfaces for pass management in LLVM.

This interface provides simple read-only access to a block of memory, and provides simple methods for...

A Module instance is used to store all the information related to an LLVM module.

A set of analyses that are preserved following a run of a transformation pass.

LLVM_ABI bool runImpl(Module &M)

LLVM_ABI PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)

RewriteSymbolPass(SymbolRewriter::RewriteDescriptorList &DL)

Definition SymbolRewriter.h:122

RewriteSymbolPass()

Definition SymbolRewriter.h:120

RewriteDescriptor(Type T)

Definition SymbolRewriter.h:86

RewriteDescriptor(const RewriteDescriptor &)=delete

Type getType() const

Definition SymbolRewriter.h:81

Type

Definition SymbolRewriter.h:70

@ GlobalVariable

function - descriptor rewrites a function

Definition SymbolRewriter.h:73

@ Invalid

Definition SymbolRewriter.h:71

@ Function

invalid

Definition SymbolRewriter.h:72

@ NamedAlias

global variable - descriptor rewrites a global variable

Definition SymbolRewriter.h:74

RewriteDescriptor & operator=(const RewriteDescriptor &)=delete

virtual bool performOnModule(Module &M)=0

virtual ~RewriteDescriptor()=default

Definition SymbolRewriter.h:94

LLVM_ABI bool parse(const std::string &MapFile, RewriteDescriptorList *Descriptors)

The instances of the Type class are immutable: once they are created, they are never changed.

LLVM Value Representation.

Represents a YAML map created from either a block map for a flow map.

A scalar node is an opaque datum that can be presented as a series of zero or more Unicode scalar val...

This class represents a YAML stream potentially containing multiple documents.

Definition SymbolRewriter.h:55

std::list< std::unique_ptr< RewriteDescriptor > > RewriteDescriptorList

Definition SymbolRewriter.h:92

This is an optimization pass for GlobalISel generic memory operations.

LLVM_ATTRIBUTE_VISIBILITY_DEFAULT AnalysisKey InnerAnalysisManagerProxy< AnalysisManagerT, IRUnitT, ExtraArgTs... >::Key

AnalysisManager< Module > ModuleAnalysisManager

Convenience typedef for the Module analysis manager.

A CRTP mix-in to automatically provide informational APIs needed for passes.