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.