diff options
author | Teresa Johnson <tejohnson@google.com> | 2016-08-12 14:03:36 +0000 |
---|---|---|
committer | Teresa Johnson <tejohnson@google.com> | 2016-08-12 14:03:36 +0000 |
commit | 4223dd8559ec307eb57e018ec614c65a363e5d4a (patch) | |
tree | f4014af480600edd941d3218f71988c628be3006 /llvm/lib/Transforms/Utils/NameAnonFunctions.cpp | |
parent | f93b246f8b22137abe69842ab4a99747d95a7f7a (diff) | |
download | llvm-4223dd8559ec307eb57e018ec614c65a363e5d4a.zip llvm-4223dd8559ec307eb57e018ec614c65a363e5d4a.tar.gz llvm-4223dd8559ec307eb57e018ec614c65a363e5d4a.tar.bz2 |
[PM] Port NameAnonFunction pass to new pass manager
Summary:
Port the NameAnonFunction pass and add a test.
Depends on D23439.
Reviewers: mehdi_amini
Subscribers: llvm-commits, mehdi_amini
Differential Revision: https://reviews.llvm.org/D23440
llvm-svn: 278509
Diffstat (limited to 'llvm/lib/Transforms/Utils/NameAnonFunctions.cpp')
-rw-r--r-- | llvm/lib/Transforms/Utils/NameAnonFunctions.cpp | 26 |
1 files changed, 19 insertions, 7 deletions
diff --git a/llvm/lib/Transforms/Utils/NameAnonFunctions.cpp b/llvm/lib/Transforms/Utils/NameAnonFunctions.cpp index 6629ab8..6dc3520 100644 --- a/llvm/lib/Transforms/Utils/NameAnonFunctions.cpp +++ b/llvm/lib/Transforms/Utils/NameAnonFunctions.cpp @@ -12,6 +12,8 @@ // //===----------------------------------------------------------------------===// +#include "llvm/Transforms/Utils/NameAnonFunctions.h" + #include "llvm/ADT/SmallString.h" #include "llvm/IR/Module.h" #include "llvm/Support/MD5.h" @@ -76,8 +78,8 @@ bool llvm::nameUnamedFunctions(Module &M) { namespace { -// Simple pass that provides a name to every anon function. -class NameAnonFunction : public ModulePass { +// Legacy pass that provides a name to every anon function. +class NameAnonFunctionLegacyPass : public ModulePass { public: /// Pass identification, replacement for typeid @@ -86,19 +88,29 @@ public: /// Specify pass name for debug output const char *getPassName() const override { return "Name Anon Functions"; } - explicit NameAnonFunction() : ModulePass(ID) {} + explicit NameAnonFunctionLegacyPass() : ModulePass(ID) {} bool runOnModule(Module &M) override { return nameUnamedFunctions(M); } }; -char NameAnonFunction::ID = 0; +char NameAnonFunctionLegacyPass::ID = 0; } // anonymous namespace -INITIALIZE_PASS_BEGIN(NameAnonFunction, "name-anon-functions", +PreservedAnalyses NameAnonFunctionPass::run(Module &M, + ModuleAnalysisManager &AM) { + if (!nameUnamedFunctions(M)) + return PreservedAnalyses::all(); + + return PreservedAnalyses::none(); +} + +INITIALIZE_PASS_BEGIN(NameAnonFunctionLegacyPass, "name-anon-functions", "Provide a name to nameless functions", false, false) -INITIALIZE_PASS_END(NameAnonFunction, "name-anon-functions", +INITIALIZE_PASS_END(NameAnonFunctionLegacyPass, "name-anon-functions", "Provide a name to nameless functions", false, false) namespace llvm { -ModulePass *createNameAnonFunctionPass() { return new NameAnonFunction(); } +ModulePass *createNameAnonFunctionPass() { + return new NameAnonFunctionLegacyPass(); +} } |