diff options
author | Michael Kuperstein <mkuper@google.com> | 2016-07-25 20:52:00 +0000 |
---|---|---|
committer | Michael Kuperstein <mkuper@google.com> | 2016-07-25 20:52:00 +0000 |
commit | 39feb6290caff60abf2d5208cbaa2a646e977553 (patch) | |
tree | 59d4439c5269c70ac6469b80a1c185c9423de0b9 /llvm/lib/Transforms | |
parent | 95b0842e64ffe02f09c8f54d39d4eb1b8dd0ebe0 (diff) | |
download | bcm5719-llvm-39feb6290caff60abf2d5208cbaa2a646e977553.tar.gz bcm5719-llvm-39feb6290caff60abf2d5208cbaa2a646e977553.zip |
[PM] Port SymbolRewriter to the new PM
Differential Revision: https://reviews.llvm.org/D22703
llvm-svn: 276687
Diffstat (limited to 'llvm/lib/Transforms')
-rw-r--r-- | llvm/lib/Transforms/Utils/SymbolRewriter.cpp | 55 |
1 files changed, 33 insertions, 22 deletions
diff --git a/llvm/lib/Transforms/Utils/SymbolRewriter.cpp b/llvm/lib/Transforms/Utils/SymbolRewriter.cpp index efd01de085e..6d136636ce7 100644 --- a/llvm/lib/Transforms/Utils/SymbolRewriter.cpp +++ b/llvm/lib/Transforms/Utils/SymbolRewriter.cpp @@ -58,6 +58,7 @@ //===----------------------------------------------------------------------===// #define DEBUG_TYPE "symbol-rewriter" +#include "llvm/Transforms/Utils/SymbolRewriter.h" #include "llvm/Pass.h" #include "llvm/ADT/SmallString.h" #include "llvm/IR/LegacyPassManager.h" @@ -68,7 +69,6 @@ #include "llvm/Support/SourceMgr.h" #include "llvm/Support/YAMLParser.h" #include "llvm/Support/raw_ostream.h" -#include "llvm/Transforms/Utils/SymbolRewriter.h" using namespace llvm; using namespace SymbolRewriter; @@ -497,34 +497,43 @@ parseRewriteGlobalAliasDescriptor(yaml::Stream &YS, yaml::ScalarNode *K, } namespace { -class RewriteSymbols : public ModulePass { +class RewriteSymbolsLegacyPass : public ModulePass { public: static char ID; // Pass identification, replacement for typeid - RewriteSymbols(); - RewriteSymbols(SymbolRewriter::RewriteDescriptorList &DL); + RewriteSymbolsLegacyPass(); + RewriteSymbolsLegacyPass(SymbolRewriter::RewriteDescriptorList &DL); bool runOnModule(Module &M) override; private: - void loadAndParseMapFiles(); - - SymbolRewriter::RewriteDescriptorList Descriptors; + RewriteSymbolPass Impl; }; -char RewriteSymbols::ID = 0; +char RewriteSymbolsLegacyPass::ID = 0; -RewriteSymbols::RewriteSymbols() : ModulePass(ID) { - initializeRewriteSymbolsPass(*PassRegistry::getPassRegistry()); - loadAndParseMapFiles(); +RewriteSymbolsLegacyPass::RewriteSymbolsLegacyPass() : ModulePass(ID), Impl() { + initializeRewriteSymbolsLegacyPassPass(*PassRegistry::getPassRegistry()); } -RewriteSymbols::RewriteSymbols(SymbolRewriter::RewriteDescriptorList &DL) - : ModulePass(ID) { - Descriptors.splice(Descriptors.begin(), DL); +RewriteSymbolsLegacyPass::RewriteSymbolsLegacyPass( + SymbolRewriter::RewriteDescriptorList &DL) + : ModulePass(ID), Impl(DL) {} + +bool RewriteSymbolsLegacyPass::runOnModule(Module &M) { + return Impl.runImpl(M); +} } -bool RewriteSymbols::runOnModule(Module &M) { +namespace llvm { +PreservedAnalyses RewriteSymbolPass::run(Module &M, ModuleAnalysisManager &AM) { + if (!runImpl(M)) + return PreservedAnalyses::all(); + + return PreservedAnalyses::none(); +} + +bool RewriteSymbolPass::runImpl(Module &M) { bool Changed; Changed = false; @@ -534,21 +543,23 @@ bool RewriteSymbols::runOnModule(Module &M) { return Changed; } -void RewriteSymbols::loadAndParseMapFiles() { +void RewriteSymbolPass::loadAndParseMapFiles() { const std::vector<std::string> MapFiles(RewriteMapFiles); - SymbolRewriter::RewriteMapParser parser; + SymbolRewriter::RewriteMapParser Parser; for (const auto &MapFile : MapFiles) - parser.parse(MapFile, &Descriptors); + Parser.parse(MapFile, &Descriptors); } } -INITIALIZE_PASS(RewriteSymbols, "rewrite-symbols", "Rewrite Symbols", false, - false) +INITIALIZE_PASS(RewriteSymbolsLegacyPass, "rewrite-symbols", "Rewrite Symbols", + false, false) -ModulePass *llvm::createRewriteSymbolsPass() { return new RewriteSymbols(); } +ModulePass *llvm::createRewriteSymbolsPass() { + return new RewriteSymbolsLegacyPass(); +} ModulePass * llvm::createRewriteSymbolsPass(SymbolRewriter::RewriteDescriptorList &DL) { - return new RewriteSymbols(DL); + return new RewriteSymbolsLegacyPass(DL); } |