summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/Passes/PassBuilder.cpp1
-rw-r--r--llvm/lib/Passes/PassRegistry.def1
-rw-r--r--llvm/lib/Transforms/Utils/NameAnonFunctions.cpp26
-rw-r--r--llvm/lib/Transforms/Utils/Utils.cpp2
4 files changed, 22 insertions, 8 deletions
diff --git a/llvm/lib/Passes/PassBuilder.cpp b/llvm/lib/Passes/PassBuilder.cpp
index 32aa87bde3c..cf0978f1086 100644
--- a/llvm/lib/Passes/PassBuilder.cpp
+++ b/llvm/lib/Passes/PassBuilder.cpp
@@ -121,6 +121,7 @@
#include "llvm/Transforms/Utils/LoopSimplify.h"
#include "llvm/Transforms/Utils/Mem2Reg.h"
#include "llvm/Transforms/Utils/MemorySSA.h"
+#include "llvm/Transforms/Utils/NameAnonFunctions.h"
#include "llvm/Transforms/Utils/SimplifyInstructions.h"
#include "llvm/Transforms/Utils/SymbolRewriter.h"
#include "llvm/Transforms/Vectorize/LoopVectorize.h"
diff --git a/llvm/lib/Passes/PassRegistry.def b/llvm/lib/Passes/PassRegistry.def
index 2e897b37088..7f9953cd85b 100644
--- a/llvm/lib/Passes/PassRegistry.def
+++ b/llvm/lib/Passes/PassRegistry.def
@@ -53,6 +53,7 @@ MODULE_PASS("internalize", InternalizePass())
MODULE_PASS("invalidate<all>", InvalidateAllAnalysesPass())
MODULE_PASS("ipsccp", IPSCCPPass())
MODULE_PASS("lowertypetests", LowerTypeTestsPass())
+MODULE_PASS("name-anon-functions", NameAnonFunctionPass())
MODULE_PASS("no-op-module", NoOpModulePass())
MODULE_PASS("partial-inliner", PartialInlinerPass())
MODULE_PASS("pgo-icall-prom", PGOIndirectCallPromotion())
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