aboutsummaryrefslogtreecommitdiff
path: root/llvm/lib/Transforms/Utils/NameAnonFunctions.cpp
diff options
context:
space:
mode:
authorTeresa Johnson <tejohnson@google.com>2016-08-12 14:03:36 +0000
committerTeresa Johnson <tejohnson@google.com>2016-08-12 14:03:36 +0000
commit4223dd8559ec307eb57e018ec614c65a363e5d4a (patch)
treef4014af480600edd941d3218f71988c628be3006 /llvm/lib/Transforms/Utils/NameAnonFunctions.cpp
parentf93b246f8b22137abe69842ab4a99747d95a7f7a (diff)
downloadllvm-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.cpp26
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();
+}
}