32#ifndef LLVM_TRANSFORMS_UTILS_SYMBOLREWRITER_H
33#define LLVM_TRANSFORMS_UTILS_SYMBOLREWRITER_H
54namespace SymbolRewriter {
101 bool parseRewriteFunctionDescriptor(
yaml::Stream &Stream,
105 bool parseRewriteGlobalVariableDescriptor(
yaml::Stream &Stream,
121 Descriptors.splice(Descriptors.begin(),
DL);
130 void loadAndParseMapFiles();
MachineBasicBlock MachineBasicBlock::iterator DebugLoc DL
This header defines various interfaces for pass management in LLVM.
Machine Check Debug Module
A container for analyses that lazily runs them and caches their results.
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.
PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM)
RewriteSymbolPass(SymbolRewriter::RewriteDescriptorList &DL)
The basic entity representing a rewrite operation.
RewriteDescriptor(Type T)
RewriteDescriptor(const RewriteDescriptor &)=delete
@ GlobalVariable
function - descriptor rewrites a function
@ NamedAlias
global variable - descriptor rewrites a global variable
RewriteDescriptor & operator=(const RewriteDescriptor &)=delete
virtual bool performOnModule(Module &M)=0
virtual ~RewriteDescriptor()=default
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.
std::list< std::unique_ptr< RewriteDescriptor > > RewriteDescriptorList
This is an optimization pass for GlobalISel generic memory operations.
A CRTP mix-in to automatically provide informational APIs needed for passes.