summarylogtreecommitdiffstats
path: root/0003-IPO-Remove-various-legacy-passes.patch
diff options
context:
space:
mode:
Diffstat (limited to '0003-IPO-Remove-various-legacy-passes.patch')
-rw-r--r--0003-IPO-Remove-various-legacy-passes.patch826
1 files changed, 0 insertions, 826 deletions
diff --git a/0003-IPO-Remove-various-legacy-passes.patch b/0003-IPO-Remove-various-legacy-passes.patch
deleted file mode 100644
index 76330ff53a95..000000000000
--- a/0003-IPO-Remove-various-legacy-passes.patch
+++ /dev/null
@@ -1,826 +0,0 @@
-From 773d663e4729f55d23cb04f78a9d003643f2cb37 Mon Sep 17 00:00:00 2001
-From: Arthur Eubanks <aeubanks@google.com>
-Date: Mon, 27 Feb 2023 19:00:37 -0800
-Subject: [PATCH] [IPO] Remove various legacy passes
-
-These are part of the optimization pipeline, of which the legacy pass manager version is deprecated and being removed.
----
- llvm/include/llvm-c/Transforms/IPO.h | 6 --
- llvm/include/llvm/InitializePasses.h | 2 -
- llvm/include/llvm/LinkAllPasses.h | 6 --
- llvm/include/llvm/Transforms/IPO.h | 28 ------
- llvm/include/llvm/Transforms/IPO/Attributor.h | 3 -
- .../llvm/Transforms/IPO/ForceFunctionAttrs.h | 4 -
- .../llvm/Transforms/IPO/FunctionAttrs.h | 4 -
- .../llvm/Transforms/IPO/InferFunctionAttrs.h | 5 -
- .../Transforms/IPO/Annotation2Metadata.cpp | 28 ------
- llvm/lib/Transforms/IPO/Attributor.cpp | 95 -------------------
- llvm/lib/Transforms/IPO/ConstantMerge.cpp | 29 ------
- llvm/lib/Transforms/IPO/ElimAvailExtern.cpp | 30 ------
- .../lib/Transforms/IPO/ForceFunctionAttrs.cpp | 29 ------
- llvm/lib/Transforms/IPO/FunctionAttrs.cpp | 42 --------
- llvm/lib/Transforms/IPO/GlobalDCE.cpp | 41 --------
- llvm/lib/Transforms/IPO/IPO.cpp | 21 ----
- .../lib/Transforms/IPO/InferFunctionAttrs.cpp | 35 -------
- .../lib/Transforms/IPO/PassManagerBuilder.cpp | 41 --------
- llvm/test/CodeGen/ARM/pr26669.ll | 31 ------
- .../Other/opt-legacy-syntax-deprecation.ll | 2 +-
- llvm/tools/bugpoint/ExtractFunction.cpp | 1 -
- 21 files changed, 1 insertion(+), 482 deletions(-)
- delete mode 100644 llvm/test/CodeGen/ARM/pr26669.ll
-
-diff --git a/llvm/include/llvm-c/Transforms/IPO.h b/llvm/include/llvm-c/Transforms/IPO.h
-index 53aa20fbd886..c558aa37f1c3 100644
---- a/llvm/include/llvm-c/Transforms/IPO.h
-+++ b/llvm/include/llvm-c/Transforms/IPO.h
-@@ -27,9 +27,6 @@ LLVM_C_EXTERN_C_BEGIN
- * @{
- */
-
--/** See llvm::createConstantMergePass function. */
--void LLVMAddConstantMergePass(LLVMPassManagerRef PM);
--
- /** See llvm::createDeadArgEliminationPass function. */
- void LLVMAddDeadArgEliminationPass(LLVMPassManagerRef PM);
-
-@@ -39,9 +36,6 @@ void LLVMAddFunctionAttrsPass(LLVMPassManagerRef PM);
- /** See llvm::createAlwaysInlinerPass function. */
- void LLVMAddAlwaysInlinerPass(LLVMPassManagerRef PM);
-
--/** See llvm::createGlobalDCEPass function. */
--void LLVMAddGlobalDCEPass(LLVMPassManagerRef PM);
--
- /**
- * @}
- */
-diff --git a/llvm/include/llvm/InitializePasses.h b/llvm/include/llvm/InitializePasses.h
-index 2924b02774bd..2fdce85c2599 100644
---- a/llvm/include/llvm/InitializePasses.h
-+++ b/llvm/include/llvm/InitializePasses.h
-@@ -60,8 +60,6 @@ void initializeAssumeBuilderPassLegacyPassPass(PassRegistry &);
- void initializeAnnotation2MetadataLegacyPass(PassRegistry &);
- void initializeAssumptionCacheTrackerPass(PassRegistry&);
- void initializeAtomicExpandPass(PassRegistry&);
--void initializeAttributorLegacyPassPass(PassRegistry&);
--void initializeAttributorCGSCCLegacyPassPass(PassRegistry &);
- void initializeBasicBlockSectionsProfileReaderPass(PassRegistry &);
- void initializeBasicBlockSectionsPass(PassRegistry &);
- void initializeBDCELegacyPassPass(PassRegistry&);
-diff --git a/llvm/include/llvm/LinkAllPasses.h b/llvm/include/llvm/LinkAllPasses.h
-index 8f07acd0bdf5..3f20916af2f3 100644
---- a/llvm/include/llvm/LinkAllPasses.h
-+++ b/llvm/include/llvm/LinkAllPasses.h
-@@ -82,7 +82,6 @@ namespace {
- (void) llvm::createCFGSimplificationPass();
- (void) llvm::createStructurizeCFGPass();
- (void) llvm::createLibCallsShrinkWrapPass();
-- (void) llvm::createConstantMergePass();
- (void) llvm::createCostModelAnalysisPass();
- (void) llvm::createDeadArgEliminationPass();
- (void) llvm::createDeadCodeEliminationPass();
-@@ -93,7 +92,6 @@ namespace {
- (void) llvm::createDomOnlyViewerWrapperPassPass();
- (void) llvm::createDomViewerWrapperPassPass();
- (void) llvm::createAlwaysInlinerLegacyPass();
-- (void) llvm::createGlobalDCEPass();
- (void) llvm::createGlobalsAAWrapperPass();
- (void) llvm::createGuardWideningPass();
- (void) llvm::createLoopGuardWideningPass();
-@@ -154,9 +152,6 @@ namespace {
- (void) llvm::createPostDomTree();
- (void) llvm::createInstructionNamerPass();
- (void) llvm::createMetaRenamerPass();
-- (void) llvm::createAttributorLegacyPass();
-- (void) llvm::createAttributorCGSCCLegacyPass();
-- (void) llvm::createPostOrderFunctionAttrsLegacyPass();
- (void) llvm::createMergeICmpsLegacyPass();
- (void) llvm::createExpandLargeDivRemPass();
- (void) llvm::createExpandMemCmpPass();
-@@ -185,7 +180,6 @@ namespace {
- (void) llvm::createMustExecutePrinter();
- (void) llvm::createMustBeExecutedContextPrinter();
- (void) llvm::createFloat2IntPass();
-- (void) llvm::createEliminateAvailableExternallyPass();
- (void)llvm::createScalarizeMaskedMemIntrinLegacyPass();
- (void) llvm::createHardwareLoopsLegacyPass();
- (void) llvm::createInjectTLIMappingsLegacyPass();
-diff --git a/llvm/include/llvm/Transforms/IPO.h b/llvm/include/llvm/Transforms/IPO.h
-index 4c6eb6f6e644..da2143625dc7 100644
---- a/llvm/include/llvm/Transforms/IPO.h
-+++ b/llvm/include/llvm/Transforms/IPO.h
-@@ -27,34 +27,6 @@ class BasicBlock;
- class GlobalValue;
- class raw_ostream;
-
--//===----------------------------------------------------------------------===//
--//
--// This pass adds !annotation metadata to entries in the
--// @llvm.global.annotations global constant.
--//
--ModulePass *createAnnotation2MetadataLegacyPass();
--
--//===----------------------------------------------------------------------===//
--/// createConstantMergePass - This function returns a new pass that merges
--/// duplicate global constants together into a single constant that is shared.
--/// This is useful because some passes (ie TraceValues) insert a lot of string
--/// constants into the program, regardless of whether or not they duplicate an
--/// existing string.
--///
--ModulePass *createConstantMergePass();
--
--//===----------------------------------------------------------------------===//
--/// createGlobalDCEPass - This transform is designed to eliminate unreachable
--/// internal globals (functions or global variables)
--///
--ModulePass *createGlobalDCEPass();
--
--//===----------------------------------------------------------------------===//
--/// This transform is designed to eliminate available external globals
--/// (functions or global variables)
--///
--ModulePass *createEliminateAvailableExternallyPass();
--
- //===----------------------------------------------------------------------===//
- /// createGVExtractionPass - If deleteFn is true, this pass deletes
- /// the specified global values. Otherwise, it deletes as much of the module as
-diff --git a/llvm/include/llvm/Transforms/IPO/Attributor.h b/llvm/include/llvm/Transforms/IPO/Attributor.h
-index 694a807d8861..968e482eff1b 100644
---- a/llvm/include/llvm/Transforms/IPO/Attributor.h
-+++ b/llvm/include/llvm/Transforms/IPO/Attributor.h
-@@ -3223,9 +3223,6 @@ struct AttributorCGSCCPass : public PassInfoMixin<AttributorCGSCCPass> {
- LazyCallGraph &CG, CGSCCUpdateResult &UR);
- };
-
--Pass *createAttributorLegacyPass();
--Pass *createAttributorCGSCCLegacyPass();
--
- /// Helper function to clamp a state \p S of type \p StateType with the
- /// information in \p R and indicate/return if \p S did change (as-in update is
- /// required to be run again).
-diff --git a/llvm/include/llvm/Transforms/IPO/ForceFunctionAttrs.h b/llvm/include/llvm/Transforms/IPO/ForceFunctionAttrs.h
-index 07c7cac77354..52667e19bc88 100644
---- a/llvm/include/llvm/Transforms/IPO/ForceFunctionAttrs.h
-+++ b/llvm/include/llvm/Transforms/IPO/ForceFunctionAttrs.h
-@@ -17,7 +17,6 @@
-
- namespace llvm {
- class Module;
--class Pass;
-
- /// Pass which forces specific function attributes into the IR, primarily as
- /// a debugging tool.
-@@ -25,9 +24,6 @@ struct ForceFunctionAttrsPass : PassInfoMixin<ForceFunctionAttrsPass> {
- PreservedAnalyses run(Module &M, ModuleAnalysisManager &);
- };
-
--/// Create a legacy pass manager instance of a pass to force function attrs.
--Pass *createForceFunctionAttrsLegacyPass();
--
- }
-
- #endif // LLVM_TRANSFORMS_IPO_FORCEFUNCTIONATTRS_H
-diff --git a/llvm/include/llvm/Transforms/IPO/FunctionAttrs.h b/llvm/include/llvm/Transforms/IPO/FunctionAttrs.h
-index fc7cca83496b..1cab52b2cca8 100644
---- a/llvm/include/llvm/Transforms/IPO/FunctionAttrs.h
-+++ b/llvm/include/llvm/Transforms/IPO/FunctionAttrs.h
-@@ -52,10 +52,6 @@ struct PostOrderFunctionAttrsPass : PassInfoMixin<PostOrderFunctionAttrsPass> {
- LazyCallGraph &CG, CGSCCUpdateResult &UR);
- };
-
--/// Create a legacy pass manager instance of a pass to compute function attrs
--/// in post-order.
--Pass *createPostOrderFunctionAttrsLegacyPass();
--
- /// A pass to do RPO deduction and propagation of function attributes.
- ///
- /// This pass provides a general RPO or "top down" propagation of
-diff --git a/llvm/include/llvm/Transforms/IPO/InferFunctionAttrs.h b/llvm/include/llvm/Transforms/IPO/InferFunctionAttrs.h
-index 880af2b46d7f..8addf49fc0d8 100644
---- a/llvm/include/llvm/Transforms/IPO/InferFunctionAttrs.h
-+++ b/llvm/include/llvm/Transforms/IPO/InferFunctionAttrs.h
-@@ -19,7 +19,6 @@
-
- namespace llvm {
- class Module;
--class Pass;
-
- /// A pass which infers function attributes from the names and signatures of
- /// function declarations in a module.
-@@ -27,10 +26,6 @@ struct InferFunctionAttrsPass : PassInfoMixin<InferFunctionAttrsPass> {
- PreservedAnalyses run(Module &M, ModuleAnalysisManager &AM);
- };
-
--/// Create a legacy pass manager instance of a pass to infer function
--/// attributes.
--Pass *createInferFunctionAttrsLegacyPass();
--
- }
-
- #endif // LLVM_TRANSFORMS_IPO_INFERFUNCTIONATTRS_H
-diff --git a/llvm/lib/Transforms/IPO/Annotation2Metadata.cpp b/llvm/lib/Transforms/IPO/Annotation2Metadata.cpp
-index 6cc04544cabc..7156e65f45a5 100644
---- a/llvm/lib/Transforms/IPO/Annotation2Metadata.cpp
-+++ b/llvm/lib/Transforms/IPO/Annotation2Metadata.cpp
-@@ -64,34 +64,6 @@ static bool convertAnnotation2Metadata(Module &M) {
- return true;
- }
-
--namespace {
--struct Annotation2MetadataLegacy : public ModulePass {
-- static char ID;
--
-- Annotation2MetadataLegacy() : ModulePass(ID) {
-- initializeAnnotation2MetadataLegacyPass(*PassRegistry::getPassRegistry());
-- }
--
-- bool runOnModule(Module &M) override { return convertAnnotation2Metadata(M); }
--
-- void getAnalysisUsage(AnalysisUsage &AU) const override {
-- AU.setPreservesAll();
-- }
--};
--
--} // end anonymous namespace
--
--char Annotation2MetadataLegacy::ID = 0;
--
--INITIALIZE_PASS_BEGIN(Annotation2MetadataLegacy, DEBUG_TYPE,
-- "Annotation2Metadata", false, false)
--INITIALIZE_PASS_END(Annotation2MetadataLegacy, DEBUG_TYPE,
-- "Annotation2Metadata", false, false)
--
--ModulePass *llvm::createAnnotation2MetadataLegacyPass() {
-- return new Annotation2MetadataLegacy();
--}
--
- PreservedAnalyses Annotation2MetadataPass::run(Module &M,
- ModuleAnalysisManager &AM) {
- convertAnnotation2Metadata(M);
-diff --git a/llvm/lib/Transforms/IPO/Attributor.cpp b/llvm/lib/Transforms/IPO/Attributor.cpp
-index 3485a9af1633..6cb74cd4aacd 100644
---- a/llvm/lib/Transforms/IPO/Attributor.cpp
-+++ b/llvm/lib/Transforms/IPO/Attributor.cpp
-@@ -3747,98 +3747,3 @@ template <> struct DOTGraphTraits<AADepGraph *> : public DefaultDOTGraphTraits {
- };
-
- } // end namespace llvm
--
--namespace {
--
--struct AttributorLegacyPass : public ModulePass {
-- static char ID;
--
-- AttributorLegacyPass() : ModulePass(ID) {
-- initializeAttributorLegacyPassPass(*PassRegistry::getPassRegistry());
-- }
--
-- bool runOnModule(Module &M) override {
-- if (skipModule(M))
-- return false;
--
-- AnalysisGetter AG;
-- SetVector<Function *> Functions;
-- for (Function &F : M)
-- Functions.insert(&F);
--
-- CallGraphUpdater CGUpdater;
-- BumpPtrAllocator Allocator;
-- InformationCache InfoCache(M, AG, Allocator, /* CGSCC */ nullptr);
-- return runAttributorOnFunctions(InfoCache, Functions, AG, CGUpdater,
-- /* DeleteFns*/ true,
-- /* IsModulePass */ true);
-- }
--
-- void getAnalysisUsage(AnalysisUsage &AU) const override {
-- // FIXME: Think about passes we will preserve and add them here.
-- AU.addRequired<TargetLibraryInfoWrapperPass>();
-- }
--};
--
--struct AttributorCGSCCLegacyPass : public CallGraphSCCPass {
-- static char ID;
--
-- AttributorCGSCCLegacyPass() : CallGraphSCCPass(ID) {
-- initializeAttributorCGSCCLegacyPassPass(*PassRegistry::getPassRegistry());
-- }
--
-- bool runOnSCC(CallGraphSCC &SCC) override {
-- if (skipSCC(SCC))
-- return false;
--
-- SetVector<Function *> Functions;
-- for (CallGraphNode *CGN : SCC)
-- if (Function *Fn = CGN->getFunction())
-- if (!Fn->isDeclaration())
-- Functions.insert(Fn);
--
-- if (Functions.empty())
-- return false;
--
-- AnalysisGetter AG;
-- CallGraph &CG = const_cast<CallGraph &>(SCC.getCallGraph());
-- CallGraphUpdater CGUpdater;
-- CGUpdater.initialize(CG, SCC);
-- Module &M = *Functions.back()->getParent();
-- BumpPtrAllocator Allocator;
-- InformationCache InfoCache(M, AG, Allocator, /* CGSCC */ &Functions);
-- return runAttributorOnFunctions(InfoCache, Functions, AG, CGUpdater,
-- /* DeleteFns */ false,
-- /* IsModulePass */ false);
-- }
--
-- void getAnalysisUsage(AnalysisUsage &AU) const override {
-- // FIXME: Think about passes we will preserve and add them here.
-- AU.addRequired<TargetLibraryInfoWrapperPass>();
-- CallGraphSCCPass::getAnalysisUsage(AU);
-- }
--};
--
--} // end anonymous namespace
--
--Pass *llvm::createAttributorLegacyPass() { return new AttributorLegacyPass(); }
--Pass *llvm::createAttributorCGSCCLegacyPass() {
-- return new AttributorCGSCCLegacyPass();
--}
--
--char AttributorLegacyPass::ID = 0;
--char AttributorCGSCCLegacyPass::ID = 0;
--
--INITIALIZE_PASS_BEGIN(AttributorLegacyPass, "attributor",
-- "Deduce and propagate attributes", false, false)
--INITIALIZE_PASS_DEPENDENCY(TargetLibraryInfoWrapperPass)
--INITIALIZE_PASS_END(AttributorLegacyPass, "attributor",
-- "Deduce and propagate attributes", false, false)
--INITIALIZE_PASS_BEGIN(AttributorCGSCCLegacyPass, "attributor-cgscc",
-- "Deduce and propagate attributes (CGSCC pass)", false,
-- false)
--INITIALIZE_PASS_DEPENDENCY(TargetLibraryInfoWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(CallGraphWrapperPass)
--INITIALIZE_PASS_END(AttributorCGSCCLegacyPass, "attributor-cgscc",
-- "Deduce and propagate attributes (CGSCC pass)", false,
-- false)
-diff --git a/llvm/lib/Transforms/IPO/ConstantMerge.cpp b/llvm/lib/Transforms/IPO/ConstantMerge.cpp
-index 77bc377f4514..06d258fdb4e7 100644
---- a/llvm/lib/Transforms/IPO/ConstantMerge.cpp
-+++ b/llvm/lib/Transforms/IPO/ConstantMerge.cpp
-@@ -251,32 +251,3 @@ PreservedAnalyses ConstantMergePass::run(Module &M, ModuleAnalysisManager &) {
- return PreservedAnalyses::all();
- return PreservedAnalyses::none();
- }
--
--namespace {
--
--struct ConstantMergeLegacyPass : public ModulePass {
-- static char ID; // Pass identification, replacement for typeid
--
-- ConstantMergeLegacyPass() : ModulePass(ID) {
-- initializeConstantMergeLegacyPassPass(*PassRegistry::getPassRegistry());
-- }
--
-- // For this pass, process all of the globals in the module, eliminating
-- // duplicate constants.
-- bool runOnModule(Module &M) override {
-- if (skipModule(M))
-- return false;
-- return mergeConstants(M);
-- }
--};
--
--} // end anonymous namespace
--
--char ConstantMergeLegacyPass::ID = 0;
--
--INITIALIZE_PASS(ConstantMergeLegacyPass, "constmerge",
-- "Merge Duplicate Global Constants", false, false)
--
--ModulePass *llvm::createConstantMergePass() {
-- return new ConstantMergeLegacyPass();
--}
-diff --git a/llvm/lib/Transforms/IPO/ElimAvailExtern.cpp b/llvm/lib/Transforms/IPO/ElimAvailExtern.cpp
-index 7f138d206fac..2ba1ff45b3db 100644
---- a/llvm/lib/Transforms/IPO/ElimAvailExtern.cpp
-+++ b/llvm/lib/Transforms/IPO/ElimAvailExtern.cpp
-@@ -70,33 +70,3 @@ EliminateAvailableExternallyPass::run(Module &M, ModuleAnalysisManager &) {
- return PreservedAnalyses::all();
- return PreservedAnalyses::none();
- }
--
--namespace {
--
--struct EliminateAvailableExternallyLegacyPass : public ModulePass {
-- static char ID; // Pass identification, replacement for typeid
--
-- EliminateAvailableExternallyLegacyPass() : ModulePass(ID) {
-- initializeEliminateAvailableExternallyLegacyPassPass(
-- *PassRegistry::getPassRegistry());
-- }
--
-- // run - Do the EliminateAvailableExternally pass on the specified module,
-- // optionally updating the specified callgraph to reflect the changes.
-- bool runOnModule(Module &M) override {
-- if (skipModule(M))
-- return false;
-- return eliminateAvailableExternally(M);
-- }
--};
--
--} // end anonymous namespace
--
--char EliminateAvailableExternallyLegacyPass::ID = 0;
--
--INITIALIZE_PASS(EliminateAvailableExternallyLegacyPass, "elim-avail-extern",
-- "Eliminate Available Externally Globals", false, false)
--
--ModulePass *llvm::createEliminateAvailableExternallyPass() {
-- return new EliminateAvailableExternallyLegacyPass();
--}
-diff --git a/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp b/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp
-index b10c2ea13469..2b8411d32fec 100644
---- a/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp
-+++ b/llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp
-@@ -80,32 +80,3 @@ PreservedAnalyses ForceFunctionAttrsPass::run(Module &M,
- // Just conservatively invalidate analyses, this isn't likely to be important.
- return PreservedAnalyses::none();
- }
--
--namespace {
--struct ForceFunctionAttrsLegacyPass : public ModulePass {
-- static char ID; // Pass identification, replacement for typeid
-- ForceFunctionAttrsLegacyPass() : ModulePass(ID) {
-- initializeForceFunctionAttrsLegacyPassPass(
-- *PassRegistry::getPassRegistry());
-- }
--
-- bool runOnModule(Module &M) override {
-- if (!hasForceAttributes())
-- return false;
--
-- for (Function &F : M.functions())
-- forceAttributes(F);
--
-- // Conservatively assume we changed something.
-- return true;
-- }
--};
--}
--
--char ForceFunctionAttrsLegacyPass::ID = 0;
--INITIALIZE_PASS(ForceFunctionAttrsLegacyPass, "forceattrs",
-- "Force set function attributes", false, false)
--
--Pass *llvm::createForceFunctionAttrsLegacyPass() {
-- return new ForceFunctionAttrsLegacyPass();
--}
-diff --git a/llvm/lib/Transforms/IPO/FunctionAttrs.cpp b/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
-index 76a89a8b673c..68a4860dc190 100644
---- a/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
-+++ b/llvm/lib/Transforms/IPO/FunctionAttrs.cpp
-@@ -1808,42 +1808,6 @@ PreservedAnalyses PostOrderFunctionAttrsPass::run(LazyCallGraph::SCC &C,
- return PA;
- }
-
--namespace {
--
--struct PostOrderFunctionAttrsLegacyPass : public CallGraphSCCPass {
-- // Pass identification, replacement for typeid
-- static char ID;
--
-- PostOrderFunctionAttrsLegacyPass() : CallGraphSCCPass(ID) {
-- initializePostOrderFunctionAttrsLegacyPassPass(
-- *PassRegistry::getPassRegistry());
-- }
--
-- bool runOnSCC(CallGraphSCC &SCC) override;
--
-- void getAnalysisUsage(AnalysisUsage &AU) const override {
-- AU.setPreservesCFG();
-- AU.addRequired<AssumptionCacheTracker>();
-- getAAResultsAnalysisUsage(AU);
-- CallGraphSCCPass::getAnalysisUsage(AU);
-- }
--};
--
--} // end anonymous namespace
--
--char PostOrderFunctionAttrsLegacyPass::ID = 0;
--INITIALIZE_PASS_BEGIN(PostOrderFunctionAttrsLegacyPass, "function-attrs",
-- "Deduce function attributes", false, false)
--INITIALIZE_PASS_DEPENDENCY(AAResultsWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(AssumptionCacheTracker)
--INITIALIZE_PASS_DEPENDENCY(CallGraphWrapperPass)
--INITIALIZE_PASS_END(PostOrderFunctionAttrsLegacyPass, "function-attrs",
-- "Deduce function attributes", false, false)
--
--Pass *llvm::createPostOrderFunctionAttrsLegacyPass() {
-- return new PostOrderFunctionAttrsLegacyPass();
--}
--
- template <typename AARGetterT>
- static bool runImpl(CallGraphSCC &SCC, AARGetterT AARGetter) {
- SmallVector<Function *, 8> Functions;
-@@ -1854,12 +1818,6 @@ static bool runImpl(CallGraphSCC &SCC, AARGetterT AARGetter) {
- return !deriveAttrsInPostOrder(Functions, AARGetter).empty();
- }
-
--bool PostOrderFunctionAttrsLegacyPass::runOnSCC(CallGraphSCC &SCC) {
-- if (skipSCC(SCC))
-- return false;
-- return runImpl(SCC, LegacyAARGetter(*this));
--}
--
- static bool addNoRecurseAttrsTopDown(Function &F) {
- // We check the preconditions for the function prior to calling this to avoid
- // the cost of building up a reversible post-order list. We assert them here
-diff --git a/llvm/lib/Transforms/IPO/GlobalDCE.cpp b/llvm/lib/Transforms/IPO/GlobalDCE.cpp
-index 2f2bb174a8c8..4aa5ae8f6a03 100644
---- a/llvm/lib/Transforms/IPO/GlobalDCE.cpp
-+++ b/llvm/lib/Transforms/IPO/GlobalDCE.cpp
-@@ -42,47 +42,6 @@ STATISTIC(NumIFuncs, "Number of indirect functions removed");
- STATISTIC(NumVariables, "Number of global variables removed");
- STATISTIC(NumVFuncs, "Number of virtual functions removed");
-
--namespace {
-- class GlobalDCELegacyPass : public ModulePass {
-- public:
-- static char ID; // Pass identification, replacement for typeid
-- GlobalDCELegacyPass() : ModulePass(ID) {
-- initializeGlobalDCELegacyPassPass(*PassRegistry::getPassRegistry());
-- }
--
-- // run - Do the GlobalDCE pass on the specified module, optionally updating
-- // the specified callgraph to reflect the changes.
-- //
-- bool runOnModule(Module &M) override {
-- if (skipModule(M))
-- return false;
--
-- // We need a minimally functional dummy module analysis manager. It needs
-- // to at least know about the possibility of proxying a function analysis
-- // manager.
-- FunctionAnalysisManager DummyFAM;
-- ModuleAnalysisManager DummyMAM;
-- DummyMAM.registerPass(
-- [&] { return FunctionAnalysisManagerModuleProxy(DummyFAM); });
--
-- auto PA = Impl.run(M, DummyMAM);
-- return !PA.areAllPreserved();
-- }
--
-- private:
-- GlobalDCEPass Impl;
-- };
--}
--
--char GlobalDCELegacyPass::ID = 0;
--INITIALIZE_PASS(GlobalDCELegacyPass, "globaldce",
-- "Dead Global Elimination", false, false)
--
--// Public interface to the GlobalDCEPass.
--ModulePass *llvm::createGlobalDCEPass() {
-- return new GlobalDCELegacyPass();
--}
--
- /// Returns true if F is effectively empty.
- static bool isEmptyFunction(Function *F) {
- // Skip external functions.
-diff --git a/llvm/lib/Transforms/IPO/IPO.cpp b/llvm/lib/Transforms/IPO/IPO.cpp
-index 6fa706a91b0b..eb0a91bbbc90 100644
---- a/llvm/lib/Transforms/IPO/IPO.cpp
-+++ b/llvm/lib/Transforms/IPO/IPO.cpp
-@@ -23,43 +23,22 @@
- using namespace llvm;
-
- void llvm::initializeIPO(PassRegistry &Registry) {
-- initializeAnnotation2MetadataLegacyPass(Registry);
-- initializeConstantMergeLegacyPassPass(Registry);
- initializeDAEPass(Registry);
- initializeDAHPass(Registry);
-- initializeForceFunctionAttrsLegacyPassPass(Registry);
-- initializeGlobalDCELegacyPassPass(Registry);
- initializeAlwaysInlinerLegacyPassPass(Registry);
-- initializeInferFunctionAttrsLegacyPassPass(Registry);
- initializeLoopExtractorLegacyPassPass(Registry);
- initializeSingleLoopExtractorPass(Registry);
-- initializeAttributorLegacyPassPass(Registry);
-- initializeAttributorCGSCCLegacyPassPass(Registry);
-- initializePostOrderFunctionAttrsLegacyPassPass(Registry);
- initializeBarrierNoopPass(Registry);
-- initializeEliminateAvailableExternallyLegacyPassPass(Registry);
- }
-
- void LLVMInitializeIPO(LLVMPassRegistryRef R) {
- initializeIPO(*unwrap(R));
- }
-
--void LLVMAddConstantMergePass(LLVMPassManagerRef PM) {
-- unwrap(PM)->add(createConstantMergePass());
--}
--
- void LLVMAddDeadArgEliminationPass(LLVMPassManagerRef PM) {
- unwrap(PM)->add(createDeadArgEliminationPass());
- }
-
--void LLVMAddFunctionAttrsPass(LLVMPassManagerRef PM) {
-- unwrap(PM)->add(createPostOrderFunctionAttrsLegacyPass());
--}
--
- void LLVMAddAlwaysInlinerPass(LLVMPassManagerRef PM) {
- unwrap(PM)->add(llvm::createAlwaysInlinerLegacyPass());
- }
--
--void LLVMAddGlobalDCEPass(LLVMPassManagerRef PM) {
-- unwrap(PM)->add(createGlobalDCEPass());
--}
-diff --git a/llvm/lib/Transforms/IPO/InferFunctionAttrs.cpp b/llvm/lib/Transforms/IPO/InferFunctionAttrs.cpp
-index 76f8f1a7a482..b4f7967ec60a 100644
---- a/llvm/lib/Transforms/IPO/InferFunctionAttrs.cpp
-+++ b/llvm/lib/Transforms/IPO/InferFunctionAttrs.cpp
-@@ -52,38 +52,3 @@ PreservedAnalyses InferFunctionAttrsPass::run(Module &M,
- // out all the passes.
- return PreservedAnalyses::none();
- }
--
--namespace {
--struct InferFunctionAttrsLegacyPass : public ModulePass {
-- static char ID; // Pass identification, replacement for typeid
-- InferFunctionAttrsLegacyPass() : ModulePass(ID) {
-- initializeInferFunctionAttrsLegacyPassPass(
-- *PassRegistry::getPassRegistry());
-- }
--
-- void getAnalysisUsage(AnalysisUsage &AU) const override {
-- AU.addRequired<TargetLibraryInfoWrapperPass>();
-- }
--
-- bool runOnModule(Module &M) override {
-- if (skipModule(M))
-- return false;
--
-- auto GetTLI = [this](Function &F) -> TargetLibraryInfo & {
-- return this->getAnalysis<TargetLibraryInfoWrapperPass>().getTLI(F);
-- };
-- return inferAllPrototypeAttributes(M, GetTLI);
-- }
--};
--}
--
--char InferFunctionAttrsLegacyPass::ID = 0;
--INITIALIZE_PASS_BEGIN(InferFunctionAttrsLegacyPass, "inferattrs",
-- "Infer set function attributes", false, false)
--INITIALIZE_PASS_DEPENDENCY(TargetLibraryInfoWrapperPass)
--INITIALIZE_PASS_END(InferFunctionAttrsLegacyPass, "inferattrs",
-- "Infer set function attributes", false, false)
--
--Pass *llvm::createInferFunctionAttrsLegacyPass() {
-- return new InferFunctionAttrsLegacyPass();
--}
-diff --git a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
-index ed394a1822de..4fdd2c9073ac 100644
---- a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
-+++ b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
-@@ -273,11 +273,6 @@ void PassManagerBuilder::addVectorPasses(legacy::PassManagerBase &PM,
-
- void PassManagerBuilder::populateModulePassManager(
- legacy::PassManagerBase &MPM) {
-- MPM.add(createAnnotation2MetadataLegacyPass());
--
-- // Allow forcing function attributes as a debugging and tuning aid.
-- MPM.add(createForceFunctionAttrsLegacyPass());
--
- // If all optimizations are disabled, just run the always-inline pass and,
- // if enabled, the function merging pass.
- if (OptLevel == 0) {
-@@ -295,9 +290,6 @@ void PassManagerBuilder::populateModulePassManager(
-
- addInitialAliasAnalysisPasses(MPM);
-
-- // Infer attributes about declarations if possible.
-- MPM.add(createInferFunctionAttrsLegacyPass());
--
- if (OptLevel > 2)
- MPM.add(createCallSiteSplittingPass());
-
-@@ -317,15 +309,11 @@ void PassManagerBuilder::populateModulePassManager(
- MPM.add(createGlobalsAAWrapperPass());
-
- // Start of CallGraph SCC passes.
-- bool RunInliner = false;
- if (Inliner) {
- MPM.add(Inliner);
- Inliner = nullptr;
-- RunInliner = true;
- }
-
-- MPM.add(createPostOrderFunctionAttrsLegacyPass());
--
- addFunctionSimplificationPasses(MPM);
-
- // FIXME: This is a HACK! The inliner pass above implicitly creates a CGSCC
-@@ -333,28 +321,6 @@ void PassManagerBuilder::populateModulePassManager(
- // we must insert a no-op module pass to reset the pass manager.
- MPM.add(createBarrierNoopPass());
-
-- if (OptLevel > 1)
-- // Remove avail extern fns and globals definitions if we aren't
-- // compiling an object file for later LTO. For LTO we want to preserve
-- // these so they are eligible for inlining at link-time. Note if they
-- // are unreferenced they will be removed by GlobalDCE later, so
-- // this only impacts referenced available externally globals.
-- // Eventually they will be suppressed during codegen, but eliminating
-- // here enables more opportunity for GlobalDCE as it may make
-- // globals referenced by available external functions dead
-- // and saves running remaining passes on the eliminated functions.
-- MPM.add(createEliminateAvailableExternallyPass());
--
-- // The inliner performs some kind of dead code elimination as it goes,
-- // but there are cases that are not really caught by it. We might
-- // at some point consider teaching the inliner about them, but it
-- // is OK for now to run GlobalOpt + GlobalDCE in tandem as their
-- // benefits generally outweight the cost, making the whole pipeline
-- // faster.
-- if (RunInliner) {
-- MPM.add(createGlobalDCEPass());
-- }
--
- // We add a fresh GlobalsModRef run at this point. This is particularly
- // useful as the above will have inlined, DCE'ed, and function-attr
- // propagated everything. We should at this point have a reasonably minimal
-@@ -382,13 +348,6 @@ void PassManagerBuilder::populateModulePassManager(
-
- addVectorPasses(MPM, /* IsFullLTO */ false);
-
-- // GlobalOpt already deletes dead functions and globals, at -O2 try a
-- // late pass of GlobalDCE. It is capable of deleting dead cycles.
-- if (OptLevel > 1) {
-- MPM.add(createGlobalDCEPass()); // Remove dead fns and globals.
-- MPM.add(createConstantMergePass()); // Merge dup global constants
-- }
--
- // LoopSink pass sinks instructions hoisted by LICM, which serves as a
- // canonicalization pass that enables other optimizations. As a result,
- // LoopSink pass needs to be a very late IR pass to avoid undoing LICM
-diff --git a/llvm/test/CodeGen/ARM/pr26669.ll b/llvm/test/CodeGen/ARM/pr26669.ll
-deleted file mode 100644
-index b3de1843da38..000000000000
---- a/llvm/test/CodeGen/ARM/pr26669.ll
-+++ /dev/null
-@@ -1,31 +0,0 @@
--; RUN: opt -S -globaldce -sjljehprepare < %s | FileCheck %s
--target datalayout = "e-m:o-p:32:32-f64:32:64-v64:32:64-v128:32:128-a:0:32-n32-S32"
--target triple = "thumbv7--ios5.0.0"
--
--define void @g() personality ptr @__gxx_personality_sj0 {
--entry:
-- %exn.slot = alloca ptr
-- %ehselector.slot = alloca i32
-- invoke void @f()
-- to label %try.cont unwind label %lpad
--
--lpad: ; preds = %entry
-- %0 = landingpad { ptr, i32 }
-- cleanup
-- br label %try.cont
--
--try.cont: ; preds = %catch, %invoke.cont
-- ret void
--}
--
--declare void @f()
--
--declare i32 @__gxx_personality_sj0(...)
--
--; CHECK-LABEL: define void @g(
--; CHECK: call void @llvm.eh.sjlj.callsite(
--; CHECK: call void @_Unwind_SjLj_Register(
--; CHECK: invoke void @f(
--; CHECK: landingpad
--; CHECK-NEXT: cleanup
--; CHECK: call void @_Unwind_SjLj_Unregister(
-diff --git a/llvm/test/Other/opt-legacy-syntax-deprecation.ll b/llvm/test/Other/opt-legacy-syntax-deprecation.ll
-index b7247a7ceef4..a5a33564fd7e 100644
---- a/llvm/test/Other/opt-legacy-syntax-deprecation.ll
-+++ b/llvm/test/Other/opt-legacy-syntax-deprecation.ll
-@@ -3,7 +3,7 @@
- ; RUN: opt /dev/null -disable-output 2>&1 | FileCheck %s --check-prefix=OK --allow-empty
- ; RUN: opt /dev/null -disable-output -passes=instcombine 2>&1 | FileCheck %s --check-prefix=OK --allow-empty
- ; RUN: not opt /dev/null -disable-output -instcombine 2>&1 | FileCheck %s --check-prefix=WARN
--; RUN: not opt /dev/null -disable-output -instcombine -globaldce 2>&1 | FileCheck %s --check-prefix=WARN
-+; RUN: not opt /dev/null -disable-output -instcombine -always-inline 2>&1 | FileCheck %s --check-prefix=WARN
- ; RUN: opt /dev/null -disable-output -instcombine -enable-new-pm=0 2>&1 | FileCheck %s --check-prefix=OK --allow-empty
- ; RUN: opt /dev/null -disable-output -codegenprepare -mtriple=x86_64-unknown-linux-gnu 2>&1 | FileCheck %s --check-prefix=OK --allow-empty
-
-diff --git a/llvm/tools/bugpoint/ExtractFunction.cpp b/llvm/tools/bugpoint/ExtractFunction.cpp
-index 5047aa35d7e7..dd9a82c32035 100644
---- a/llvm/tools/bugpoint/ExtractFunction.cpp
-+++ b/llvm/tools/bugpoint/ExtractFunction.cpp
-@@ -133,7 +133,6 @@ BugDriver::performFinalCleanups(std::unique_ptr<Module> M,
- I->setLinkage(GlobalValue::ExternalLinkage);
-
- std::vector<std::string> CleanupPasses;
-- CleanupPasses.push_back("globaldce");
-
- if (MayModifySemantics)
- CleanupPasses.push_back("deadarghaX0r");
---
-2.39.2
-