33 #ifndef LLVM_TRANSFORMS_UTILS_SYMBOLREWRITER_H 34 #define LLVM_TRANSFORMS_UTILS_SYMBOLREWRITER_H 56 namespace SymbolRewriter {
84 virtual bool performOnModule(
Module &M) = 0;
103 bool parseRewriteFunctionDescriptor(
yaml::Stream &Stream,
107 bool parseRewriteGlobalVariableDescriptor(
yaml::Stream &Stream,
126 Descriptors.splice(Descriptors.begin(), DL);
135 void loadAndParseMapFiles();
142 #endif //LLVM_TRANSFORMS_UTILS_SYMBOLREWRITER_H
static bool runImpl(Function &F, TargetLibraryInfo &TLI, DominatorTree &DT)
This is the entry point for all transforms.
This class represents lattice values for constants.
A Module instance is used to store all the information related to an LLVM module. ...
RewriteDescriptor(Type T)
The basic entity representing a rewrite operation.
A CRTP mix-in to automatically provide informational APIs needed for passes.
A set of analyses that are preserved following a run of a transformation pass.
llvm::Expected< Value > parse(llvm::StringRef JSON)
Parses the provided JSON source, or returns a ParseError.
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.
ModulePass * createRewriteSymbolsPass()
std::list< std::unique_ptr< RewriteDescriptor > > RewriteDescriptorList
RewriteSymbolPass(SymbolRewriter::RewriteDescriptorList &DL)
ModulePass class - This class is used to implement unstructured interprocedural optimizations and ana...
Represents a YAML map created from either a block map for a flow map.
LLVM Value Representation.
A container for analyses that lazily runs them and caches their results.
This header defines various interfaces for pass management in LLVM.