summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Transforms/Utils
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
parentf93b246f8b22137abe69842ab4a99747d95a7f7a (diff)
downloadbcm5719-llvm-4223dd8559ec307eb57e018ec614c65a363e5d4a.tar.gz
bcm5719-llvm-4223dd8559ec307eb57e018ec614c65a363e5d4a.zip
[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')
-rw-r--r--llvm/lib/Transforms/Utils/NameAnonFunctions.cpp26
-rw-r--r--llvm/lib/Transforms/Utils/Utils.cpp2
2 files changed, 20 insertions, 8 deletions
diff --git a/llvm/lib/Transforms/Utils/NameAnonFunctions.cpp b/llvm/lib/Transforms/Utils/NameAnonFunctions.cpp
index 6629ab85510..6dc3520b61a 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();
+}
}
diff --git a/llvm/lib/Transforms/Utils/Utils.cpp b/llvm/lib/Transforms/Utils/Utils.cpp
index 8f85f19efe3..92b72453918 100644
--- a/llvm/lib/Transforms/Utils/Utils.cpp
+++ b/llvm/lib/Transforms/Utils/Utils.cpp
@@ -28,7 +28,7 @@ void llvm::initializeTransformUtils(PassRegistry &Registry) {
initializeLoopSimplifyPass(Registry);
initializeLowerInvokePass(Registry);
initializeLowerSwitchPass(Registry);
- initializeNameAnonFunctionPass(Registry);
+ initializeNameAnonFunctionLegacyPassPass(Registry);
initializePromoteLegacyPassPass(Registry);
initializeUnifyFunctionExitNodesPass(Registry);
initializeInstSimplifierPass(Registry);
OpenPOWER on IntegriCloud