summarylogtreecommitdiffstats
path: root/0007-Passes-Remove-some-legacy-passes.patch
diff options
context:
space:
mode:
Diffstat (limited to '0007-Passes-Remove-some-legacy-passes.patch')
-rw-r--r--0007-Passes-Remove-some-legacy-passes.patch1154
1 files changed, 0 insertions, 1154 deletions
diff --git a/0007-Passes-Remove-some-legacy-passes.patch b/0007-Passes-Remove-some-legacy-passes.patch
deleted file mode 100644
index 3b0c98f64570..000000000000
--- a/0007-Passes-Remove-some-legacy-passes.patch
+++ /dev/null
@@ -1,1154 +0,0 @@
-From 7c3c981442b11153ac1a2be678db727ff715253b Mon Sep 17 00:00:00 2001
-From: Arthur Eubanks <aeubanks@google.com>
-Date: Wed, 8 Mar 2023 15:07:17 -0800
-Subject: [PATCH] [Passes] Remove some legacy passes
-
-DFAJumpThreading
-JumpThreading
-LibCallsShrink
-LoopVectorize
-SLPVectorizer
-DeadStoreElimination
-AggressiveDCE
-CorrelatedValuePropagation
-IndVarSimplify
-
-These are part of the optimization pipeline, of which the legacy version is deprecated and being removed.
----
- .../LLJITWithOptimizingIRTransform.cpp | 1 -
- llvm/include/llvm/InitializePasses.h | 4 -
- llvm/include/llvm/LinkAllPasses.h | 9 --
- llvm/include/llvm/Transforms/Scalar.h | 51 ----------
- llvm/include/llvm/Transforms/Vectorize.h | 14 ---
- .../lib/Transforms/IPO/PassManagerBuilder.cpp | 19 ----
- llvm/lib/Transforms/Scalar/ADCE.cpp | 47 ---------
- .../Scalar/CorrelatedValuePropagation.cpp | 47 ---------
- .../Transforms/Scalar/DFAJumpThreading.cpp | 43 --------
- .../Scalar/DeadStoreElimination.cpp | 76 --------------
- llvm/lib/Transforms/Scalar/IndVarSimplify.cpp | 51 ----------
- llvm/lib/Transforms/Scalar/JumpThreading.cpp | 87 ----------------
- llvm/lib/Transforms/Scalar/Scalar.cpp | 6 --
- .../Transforms/Utils/LibCallsShrinkWrap.cpp | 43 --------
- llvm/lib/Transforms/Utils/Utils.cpp | 1 -
- .../Transforms/Vectorize/LoopVectorize.cpp | 98 -------------------
- .../Transforms/Vectorize/SLPVectorizer.cpp | 71 --------------
- llvm/lib/Transforms/Vectorize/Vectorize.cpp | 2 -
- .../hexagon_vector_loop_carried_reuse.ll | 2 +-
- ...n_vector_loop_carried_reuse_commutative.ll | 2 +-
- ...agon_vector_loop_carried_reuse_constant.ll | 2 +-
- .../scev-after-loopinstsimplify.ll | 2 +-
- .../AArch64/sleef-calls-aarch64.ll | 2 +-
- polly/lib/Transform/Canonicalization.cpp | 1 -
- 24 files changed, 5 insertions(+), 676 deletions(-)
-
-diff --git a/llvm/examples/OrcV2Examples/LLJITWithOptimizingIRTransform/LLJITWithOptimizingIRTransform.cpp b/llvm/examples/OrcV2Examples/LLJITWithOptimizingIRTransform/LLJITWithOptimizingIRTransform.cpp
-index a5fd384b65b5..069c8e8e8031 100644
---- a/llvm/examples/OrcV2Examples/LLJITWithOptimizingIRTransform/LLJITWithOptimizingIRTransform.cpp
-+++ b/llvm/examples/OrcV2Examples/LLJITWithOptimizingIRTransform/LLJITWithOptimizingIRTransform.cpp
-@@ -74,7 +74,6 @@ class MyOptimizationTransform {
- public:
- MyOptimizationTransform() : PM(std::make_unique<legacy::PassManager>()) {
- PM->add(createTailCallEliminationPass());
-- PM->add(createIndVarSimplifyPass());
- PM->add(createCFGSimplificationPass());
- }
-
-diff --git a/llvm/include/llvm/InitializePasses.h b/llvm/include/llvm/InitializePasses.h
-index 818dd2e5c45e..64a9f7b47112 100644
---- a/llvm/include/llvm/InitializePasses.h
-+++ b/llvm/include/llvm/InitializePasses.h
-@@ -99,7 +99,6 @@ void initializeCycleInfoWrapperPassPass(PassRegistry &);
- void initializeDAEPass(PassRegistry&);
- void initializeDAHPass(PassRegistry&);
- void initializeDCELegacyPassPass(PassRegistry&);
--void initializeDFAJumpThreadingLegacyPassPass(PassRegistry &);
- void initializeDSELegacyPassPass(PassRegistry&);
- void initializeDeadMachineInstructionElimPass(PassRegistry&);
- void initializeDebugifyMachineModulePass(PassRegistry &);
-@@ -189,7 +188,6 @@ void initializeLegacyLoopSinkPassPass(PassRegistry&);
- void initializeLegalizerPass(PassRegistry&);
- void initializeGISelCSEAnalysisWrapperPassPass(PassRegistry &);
- void initializeGISelKnownBitsAnalysisPass(PassRegistry &);
--void initializeLibCallsShrinkWrapLegacyPassPass(PassRegistry&);
- void initializeLintLegacyPassPass(PassRegistry &);
- void initializeLiveDebugValuesPass(PassRegistry&);
- void initializeLiveDebugVariablesPass(PassRegistry&);
-@@ -215,7 +213,6 @@ void initializeLoopSimplifyCFGLegacyPassPass(PassRegistry&);
- void initializeLoopSimplifyPass(PassRegistry&);
- void initializeLoopStrengthReducePass(PassRegistry&);
- void initializeLoopUnrollPass(PassRegistry&);
--void initializeLoopVectorizePass(PassRegistry&);
- void initializeLowerAtomicLegacyPassPass(PassRegistry&);
- void initializeLowerConstantIntrinsicsPass(PassRegistry&);
- void initializeLowerEmuTLSPass(PassRegistry&);
-@@ -336,7 +333,6 @@ void initializeRewriteStatepointsForGCLegacyPassPass(PassRegistry &);
- void initializeRewriteSymbolsLegacyPassPass(PassRegistry&);
- void initializeSCCPLegacyPassPass(PassRegistry&);
- void initializeSCEVAAWrapperPassPass(PassRegistry&);
--void initializeSLPVectorizerPass(PassRegistry&);
- void initializeSROALegacyPassPass(PassRegistry&);
- void initializeSafeStackLegacyPassPass(PassRegistry&);
- void initializeSafepointIRVerifierPass(PassRegistry&);
-diff --git a/llvm/include/llvm/LinkAllPasses.h b/llvm/include/llvm/LinkAllPasses.h
-index 3f20916af2f3..9e16054bfb9f 100644
---- a/llvm/include/llvm/LinkAllPasses.h
-+++ b/llvm/include/llvm/LinkAllPasses.h
-@@ -69,7 +69,6 @@ namespace {
- return;
-
- (void) llvm::createAAEvalPass();
-- (void) llvm::createAggressiveDCEPass();
- (void)llvm::createBitTrackingDCEPass();
- (void) llvm::createAlignmentFromAssumptionsPass();
- (void) llvm::createBasicAAWrapperPass();
-@@ -81,11 +80,9 @@ namespace {
- (void) llvm::createCallGraphViewerPass();
- (void) llvm::createCFGSimplificationPass();
- (void) llvm::createStructurizeCFGPass();
-- (void) llvm::createLibCallsShrinkWrapPass();
- (void) llvm::createCostModelAnalysisPass();
- (void) llvm::createDeadArgEliminationPass();
- (void) llvm::createDeadCodeEliminationPass();
-- (void) llvm::createDeadStoreEliminationPass();
- (void) llvm::createDependenceAnalysisWrapperPass();
- (void) llvm::createDomOnlyPrinterWrapperPassPass();
- (void) llvm::createDomPrinterWrapperPassPass();
-@@ -96,7 +93,6 @@ namespace {
- (void) llvm::createGuardWideningPass();
- (void) llvm::createLoopGuardWideningPass();
- (void) llvm::createInductiveRangeCheckEliminationPass();
-- (void) llvm::createIndVarSimplifyPass();
- (void) llvm::createInstSimplifyLegacyPass();
- (void) llvm::createInstructionCombiningPass();
- (void) llvm::createJMCInstrumenterPass();
-@@ -137,8 +133,6 @@ namespace {
- (void) llvm::createSingleLoopExtractorPass();
- (void) llvm::createTailCallEliminationPass();
- (void)llvm::createTLSVariableHoistPass();
-- (void) llvm::createJumpThreadingPass();
-- (void) llvm::createDFAJumpThreadingPass();
- (void) llvm::createUnifyFunctionExitNodesPass();
- (void) llvm::createInstCountPass();
- (void) llvm::createConstantHoistingPass();
-@@ -164,10 +158,7 @@ namespace {
- (void) llvm::createLintLegacyPassPass();
- (void) llvm::createSinkingPass();
- (void) llvm::createLowerAtomicPass();
-- (void) llvm::createCorrelatedValuePropagationPass();
- (void) llvm::createMemDepPrinter();
-- (void) llvm::createLoopVectorizePass();
-- (void) llvm::createSLPVectorizerPass();
- (void) llvm::createLoadStoreVectorizerPass();
- (void) llvm::createPartiallyInlineLibCallsPass();
- (void) llvm::createScalarizerPass();
-diff --git a/llvm/include/llvm/Transforms/Scalar.h b/llvm/include/llvm/Transforms/Scalar.h
-index ae91ddca7b81..e9b6dc40c913 100644
---- a/llvm/include/llvm/Transforms/Scalar.h
-+++ b/llvm/include/llvm/Transforms/Scalar.h
-@@ -47,13 +47,6 @@ Pass *createRedundantDbgInstEliminationPass();
- //
- FunctionPass *createDeadCodeEliminationPass();
-
--//===----------------------------------------------------------------------===//
--//
--// DeadStoreElimination - This pass deletes stores that are post-dominated by
--// must-aliased stores and are not loaded used between the stores.
--//
--FunctionPass *createDeadStoreEliminationPass();
--
-
- //===----------------------------------------------------------------------===//
- //
-@@ -61,14 +54,6 @@ FunctionPass *createDeadStoreEliminationPass();
- // values.
- FunctionPass *createCallSiteSplittingPass();
-
--//===----------------------------------------------------------------------===//
--//
--// AggressiveDCE - This pass uses the SSA based Aggressive DCE algorithm. This
--// algorithm assumes instructions are dead until proven otherwise, which makes
--// it more successful are removing non-obviously dead instructions.
--//
--FunctionPass *createAggressiveDCEPass();
--
- //===----------------------------------------------------------------------===//
- //
- // GuardWidening - An optimization over the @llvm.experimental.guard intrinsic
-@@ -108,13 +93,6 @@ FunctionPass *createSROAPass(bool PreserveCFG = true);
- //
- Pass *createInductiveRangeCheckEliminationPass();
-
--//===----------------------------------------------------------------------===//
--//
--// InductionVariableSimplify - Transform induction variables in a program to all
--// use a single canonical induction variable per loop.
--//
--Pass *createIndVarSimplifyPass();
--
- //===----------------------------------------------------------------------===//
- //
- // LICM - This pass is a loop invariant code motion and memory promotion pass.
-@@ -188,22 +166,6 @@ extern char &DemoteRegisterToMemoryID;
- //
- FunctionPass *createReassociatePass();
-
--//===----------------------------------------------------------------------===//
--//
--// JumpThreading - Thread control through mult-pred/multi-succ blocks where some
--// preds always go to some succ. Thresholds other than minus one
--// override the internal BB duplication default threshold.
--//
--FunctionPass *createJumpThreadingPass(int Threshold = -1);
--
--//===----------------------------------------------------------------------===//
--//
--// DFAJumpThreading - When a switch statement inside a loop is used to
--// implement a deterministic finite automata we can jump thread the switch
--// statement reducing number of conditional jumps.
--//
--FunctionPass *createDFAJumpThreadingPass();
--
- //===----------------------------------------------------------------------===//
- //
- // CFGSimplification - Merge basic blocks, eliminate unreachable blocks,
-@@ -327,12 +289,6 @@ Pass *createLowerWidenableConditionPass();
- //
- Pass *createMergeICmpsLegacyPass();
-
--//===----------------------------------------------------------------------===//
--//
--// ValuePropagation - Propagate CFG-derived value information
--//
--Pass *createCorrelatedValuePropagationPass();
--
- //===----------------------------------------------------------------------===//
- //
- // InferAddressSpaces - Modify users of addrspacecast instructions with values
-@@ -428,13 +384,6 @@ FunctionPass *createNaryReassociatePass();
- //
- FunctionPass *createLoopDataPrefetchPass();
-
--//===----------------------------------------------------------------------===//
--//
--// LibCallsShrinkWrap - Shrink-wraps a call to function if the result is not
--// used.
--//
--FunctionPass *createLibCallsShrinkWrapPass();
--
- //===----------------------------------------------------------------------===//
- //
- // LoopSimplifyCFG - This pass performs basic CFG simplification on loops,
-diff --git a/llvm/include/llvm/Transforms/Vectorize.h b/llvm/include/llvm/Transforms/Vectorize.h
-index bca78d073003..b77ebbc55e7d 100644
---- a/llvm/include/llvm/Transforms/Vectorize.h
-+++ b/llvm/include/llvm/Transforms/Vectorize.h
-@@ -104,20 +104,6 @@ struct VectorizeConfig {
- VectorizeConfig();
- };
-
--//===----------------------------------------------------------------------===//
--//
--// LoopVectorize - Create a loop vectorization pass.
--//
--Pass *createLoopVectorizePass();
--Pass *createLoopVectorizePass(bool InterleaveOnlyWhenForced,
-- bool VectorizeOnlyWhenForced);
--
--//===----------------------------------------------------------------------===//
--//
--// SLPVectorizer - Create a bottom-up SLP vectorizer pass.
--//
--Pass *createSLPVectorizerPass();
--
- //===----------------------------------------------------------------------===//
- /// Vectorize the BasicBlock.
- ///
-diff --git a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
-index cd8523c215a0..ba7a7f9b121d 100644
---- a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
-+++ b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp
-@@ -102,17 +102,12 @@ void PassManagerBuilder::addFunctionSimplificationPasses(
- if (OptLevel > 1) {
- // Speculative execution if the target has divergent branches; otherwise nop.
- MPM.add(createSpeculativeExecutionIfHasBranchDivergencePass());
--
-- MPM.add(createJumpThreadingPass()); // Thread jumps.
-- MPM.add(createCorrelatedValuePropagationPass()); // Propagate conditionals
- }
- MPM.add(
- createCFGSimplificationPass(SimplifyCFGOptions().convertSwitchRangeToICmp(
- true))); // Merge & remove BBs
- // Combine silly seq's
- MPM.add(createInstructionCombiningPass());
-- if (SizeLevel == 0)
-- MPM.add(createLibCallsShrinkWrapPass());
-
- // TODO: Investigate the cost/benefit of tail call elimination on debugging.
- if (OptLevel > 1)
-@@ -151,7 +146,6 @@ void PassManagerBuilder::addFunctionSimplificationPasses(
- SimplifyCFGOptions().convertSwitchRangeToICmp(true)));
- MPM.add(createInstructionCombiningPass());
- // We resume loop passes creating a second loop pipeline here.
-- MPM.add(createIndVarSimplifyPass()); // Canonicalize indvars
-
- // Unroll small loops and perform peeling.
- MPM.add(createSimpleLoopUnrollPass(OptLevel, DisableUnrollLoops,
-@@ -174,16 +168,10 @@ void PassManagerBuilder::addFunctionSimplificationPasses(
- // Run instcombine after redundancy elimination to exploit opportunities
- // opened up by them.
- MPM.add(createInstructionCombiningPass());
-- if (OptLevel > 1) {
-- MPM.add(createJumpThreadingPass()); // Thread jumps
-- MPM.add(createCorrelatedValuePropagationPass());
-- }
-- MPM.add(createAggressiveDCEPass()); // Delete dead instructions
-
- MPM.add(createMemCpyOptPass()); // Remove memcpy / form memset
- // TODO: Investigate if this is too expensive at O1.
- if (OptLevel > 1) {
-- MPM.add(createDeadStoreEliminationPass()); // Delete dead stores
- MPM.add(createLICMPass(LicmMssaOptCap, LicmMssaNoAccForPromotionCap,
- /*AllowSpeculation=*/true));
- }
-@@ -198,8 +186,6 @@ void PassManagerBuilder::addFunctionSimplificationPasses(
- /// FIXME: Should LTO cause any differences to this set of passes?
- void PassManagerBuilder::addVectorPasses(legacy::PassManagerBase &PM,
- bool IsFullLTO) {
-- PM.add(createLoopVectorizePass(!LoopsInterleaved, !LoopVectorize));
--
- if (IsFullLTO) {
- // The vectorizer may have significantly shortened a loop body; unroll
- // again. Unroll small loops to hide loop backedge latency and saturate any
-@@ -237,11 +223,6 @@ void PassManagerBuilder::addVectorPasses(legacy::PassManagerBase &PM,
- PM.add(createBitTrackingDCEPass());
- }
-
-- // Optimize parallel scalar instruction chains into SIMD instructions.
-- if (SLPVectorize) {
-- PM.add(createSLPVectorizerPass());
-- }
--
- if (!IsFullLTO) {
- PM.add(createInstructionCombiningPass());
-
-diff --git a/llvm/lib/Transforms/Scalar/ADCE.cpp b/llvm/lib/Transforms/Scalar/ADCE.cpp
-index ec07c5341d18..b96feb905659 100644
---- a/llvm/lib/Transforms/Scalar/ADCE.cpp
-+++ b/llvm/lib/Transforms/Scalar/ADCE.cpp
-@@ -733,50 +733,3 @@ PreservedAnalyses ADCEPass::run(Function &F, FunctionAnalysisManager &FAM) {
-
- return PA;
- }
--
--namespace {
--
--struct ADCELegacyPass : public FunctionPass {
-- static char ID; // Pass identification, replacement for typeid
--
-- ADCELegacyPass() : FunctionPass(ID) {
-- initializeADCELegacyPassPass(*PassRegistry::getPassRegistry());
-- }
--
-- bool runOnFunction(Function &F) override {
-- if (skipFunction(F))
-- return false;
--
-- // ADCE does not need DominatorTree, but require DominatorTree here
-- // to update analysis if it is already available.
-- auto *DTWP = getAnalysisIfAvailable<DominatorTreeWrapperPass>();
-- auto *DT = DTWP ? &DTWP->getDomTree() : nullptr;
-- auto &PDT = getAnalysis<PostDominatorTreeWrapperPass>().getPostDomTree();
-- ADCEChanged Changed =
-- AggressiveDeadCodeElimination(F, DT, PDT).performDeadCodeElimination();
-- return Changed.ChangedAnything;
-- }
--
-- void getAnalysisUsage(AnalysisUsage &AU) const override {
-- AU.addRequired<PostDominatorTreeWrapperPass>();
-- if (!RemoveControlFlowFlag)
-- AU.setPreservesCFG();
-- else {
-- AU.addPreserved<DominatorTreeWrapperPass>();
-- AU.addPreserved<PostDominatorTreeWrapperPass>();
-- }
-- AU.addPreserved<GlobalsAAWrapperPass>();
-- }
--};
--
--} // end anonymous namespace
--
--char ADCELegacyPass::ID = 0;
--
--INITIALIZE_PASS_BEGIN(ADCELegacyPass, "adce",
-- "Aggressive Dead Code Elimination", false, false)
--INITIALIZE_PASS_DEPENDENCY(PostDominatorTreeWrapperPass)
--INITIALIZE_PASS_END(ADCELegacyPass, "adce", "Aggressive Dead Code Elimination",
-- false, false)
--
--FunctionPass *llvm::createAggressiveDCEPass() { return new ADCELegacyPass(); }
-diff --git a/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp b/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
-index a6293ee67123..1323d724a97c 100644
---- a/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
-+++ b/llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
-@@ -97,43 +97,6 @@ STATISTIC(NumMinMax, "Number of llvm.[us]{min,max} intrinsics removed");
- STATISTIC(NumUDivURemsNarrowedExpanded,
- "Number of bound udiv's/urem's expanded");
-
--namespace {
--
-- class CorrelatedValuePropagation : public FunctionPass {
-- public:
-- static char ID;
--
-- CorrelatedValuePropagation(): FunctionPass(ID) {
-- initializeCorrelatedValuePropagationPass(*PassRegistry::getPassRegistry());
-- }
--
-- bool runOnFunction(Function &F) override;
--
-- void getAnalysisUsage(AnalysisUsage &AU) const override {
-- AU.addRequired<DominatorTreeWrapperPass>();
-- AU.addRequired<LazyValueInfoWrapperPass>();
-- AU.addPreserved<GlobalsAAWrapperPass>();
-- AU.addPreserved<DominatorTreeWrapperPass>();
-- AU.addPreserved<LazyValueInfoWrapperPass>();
-- }
-- };
--
--} // end anonymous namespace
--
--char CorrelatedValuePropagation::ID = 0;
--
--INITIALIZE_PASS_BEGIN(CorrelatedValuePropagation, "correlated-propagation",
-- "Value Propagation", false, false)
--INITIALIZE_PASS_DEPENDENCY(DominatorTreeWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(LazyValueInfoWrapperPass)
--INITIALIZE_PASS_END(CorrelatedValuePropagation, "correlated-propagation",
-- "Value Propagation", false, false)
--
--// Public interface to the Value Propagation pass
--Pass *llvm::createCorrelatedValuePropagationPass() {
-- return new CorrelatedValuePropagation();
--}
--
- static bool processSelect(SelectInst *S, LazyValueInfo *LVI) {
- if (S->getType()->isVectorTy()) return false;
- if (isa<Constant>(S->getCondition())) return false;
-@@ -1221,16 +1184,6 @@ static bool runImpl(Function &F, LazyValueInfo *LVI, DominatorTree *DT,
- return FnChanged;
- }
-
--bool CorrelatedValuePropagation::runOnFunction(Function &F) {
-- if (skipFunction(F))
-- return false;
--
-- LazyValueInfo *LVI = &getAnalysis<LazyValueInfoWrapperPass>().getLVI();
-- DominatorTree *DT = &getAnalysis<DominatorTreeWrapperPass>().getDomTree();
--
-- return runImpl(F, LVI, DT, getBestSimplifyQuery(*this, F));
--}
--
- PreservedAnalyses
- CorrelatedValuePropagationPass::run(Function &F, FunctionAnalysisManager &AM) {
- LazyValueInfo *LVI = &AM.getResult<LazyValueAnalysis>(F);
-diff --git a/llvm/lib/Transforms/Scalar/DFAJumpThreading.cpp b/llvm/lib/Transforms/Scalar/DFAJumpThreading.cpp
-index 658d0fcb53fa..ede98fc69e64 100644
---- a/llvm/lib/Transforms/Scalar/DFAJumpThreading.cpp
-+++ b/llvm/lib/Transforms/Scalar/DFAJumpThreading.cpp
-@@ -168,51 +168,8 @@ private:
- OptimizationRemarkEmitter *ORE;
- };
-
--class DFAJumpThreadingLegacyPass : public FunctionPass {
--public:
-- static char ID; // Pass identification
-- DFAJumpThreadingLegacyPass() : FunctionPass(ID) {}
--
-- void getAnalysisUsage(AnalysisUsage &AU) const override {
-- AU.addRequired<AssumptionCacheTracker>();
-- AU.addRequired<DominatorTreeWrapperPass>();
-- AU.addPreserved<DominatorTreeWrapperPass>();
-- AU.addRequired<TargetTransformInfoWrapperPass>();
-- AU.addRequired<OptimizationRemarkEmitterWrapperPass>();
-- }
--
-- bool runOnFunction(Function &F) override {
-- if (skipFunction(F))
-- return false;
--
-- AssumptionCache *AC =
-- &getAnalysis<AssumptionCacheTracker>().getAssumptionCache(F);
-- DominatorTree *DT = &getAnalysis<DominatorTreeWrapperPass>().getDomTree();
-- TargetTransformInfo *TTI =
-- &getAnalysis<TargetTransformInfoWrapperPass>().getTTI(F);
-- OptimizationRemarkEmitter *ORE =
-- &getAnalysis<OptimizationRemarkEmitterWrapperPass>().getORE();
--
-- return DFAJumpThreading(AC, DT, TTI, ORE).run(F);
-- }
--};
- } // end anonymous namespace
-
--char DFAJumpThreadingLegacyPass::ID = 0;
--INITIALIZE_PASS_BEGIN(DFAJumpThreadingLegacyPass, "dfa-jump-threading",
-- "DFA Jump Threading", false, false)
--INITIALIZE_PASS_DEPENDENCY(AssumptionCacheTracker)
--INITIALIZE_PASS_DEPENDENCY(DominatorTreeWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(TargetTransformInfoWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(OptimizationRemarkEmitterWrapperPass)
--INITIALIZE_PASS_END(DFAJumpThreadingLegacyPass, "dfa-jump-threading",
-- "DFA Jump Threading", false, false)
--
--// Public interface to the DFA Jump Threading pass
--FunctionPass *llvm::createDFAJumpThreadingPass() {
-- return new DFAJumpThreadingLegacyPass();
--}
--
- namespace {
-
- /// Create a new basic block and sink \p SIToSink into it.
-diff --git a/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp b/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
-index d3757341ad20..9a7ad8d49222 100644
---- a/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
-+++ b/llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
-@@ -2240,79 +2240,3 @@ PreservedAnalyses DSEPass::run(Function &F, FunctionAnalysisManager &AM) {
- PA.preserve<LoopAnalysis>();
- return PA;
- }
--
--namespace {
--
--/// A legacy pass for the legacy pass manager that wraps \c DSEPass.
--class DSELegacyPass : public FunctionPass {
--public:
-- static char ID; // Pass identification, replacement for typeid
--
-- DSELegacyPass() : FunctionPass(ID) {
-- initializeDSELegacyPassPass(*PassRegistry::getPassRegistry());
-- }
--
-- bool runOnFunction(Function &F) override {
-- if (skipFunction(F))
-- return false;
--
-- AliasAnalysis &AA = getAnalysis<AAResultsWrapperPass>().getAAResults();
-- DominatorTree &DT = getAnalysis<DominatorTreeWrapperPass>().getDomTree();
-- const TargetLibraryInfo &TLI =
-- getAnalysis<TargetLibraryInfoWrapperPass>().getTLI(F);
-- MemorySSA &MSSA = getAnalysis<MemorySSAWrapperPass>().getMSSA();
-- PostDominatorTree &PDT =
-- getAnalysis<PostDominatorTreeWrapperPass>().getPostDomTree();
-- AssumptionCache &AC =
-- getAnalysis<AssumptionCacheTracker>().getAssumptionCache(F);
-- LoopInfo &LI = getAnalysis<LoopInfoWrapperPass>().getLoopInfo();
--
-- bool Changed = eliminateDeadStores(F, AA, MSSA, DT, PDT, AC, TLI, LI);
--
--#ifdef LLVM_ENABLE_STATS
-- if (AreStatisticsEnabled())
-- for (auto &I : instructions(F))
-- NumRemainingStores += isa<StoreInst>(&I);
--#endif
--
-- return Changed;
-- }
--
-- void getAnalysisUsage(AnalysisUsage &AU) const override {
-- AU.setPreservesCFG();
-- AU.addRequired<AAResultsWrapperPass>();
-- AU.addRequired<TargetLibraryInfoWrapperPass>();
-- AU.addPreserved<GlobalsAAWrapperPass>();
-- AU.addRequired<DominatorTreeWrapperPass>();
-- AU.addPreserved<DominatorTreeWrapperPass>();
-- AU.addRequired<PostDominatorTreeWrapperPass>();
-- AU.addRequired<MemorySSAWrapperPass>();
-- AU.addPreserved<PostDominatorTreeWrapperPass>();
-- AU.addPreserved<MemorySSAWrapperPass>();
-- AU.addRequired<LoopInfoWrapperPass>();
-- AU.addPreserved<LoopInfoWrapperPass>();
-- AU.addRequired<AssumptionCacheTracker>();
-- }
--};
--
--} // end anonymous namespace
--
--char DSELegacyPass::ID = 0;
--
--INITIALIZE_PASS_BEGIN(DSELegacyPass, "dse", "Dead Store Elimination", false,
-- false)
--INITIALIZE_PASS_DEPENDENCY(DominatorTreeWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(PostDominatorTreeWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(AAResultsWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(GlobalsAAWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(MemorySSAWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(MemoryDependenceWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(TargetLibraryInfoWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(LoopInfoWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(AssumptionCacheTracker)
--INITIALIZE_PASS_END(DSELegacyPass, "dse", "Dead Store Elimination", false,
-- false)
--
--FunctionPass *llvm::createDeadStoreEliminationPass() {
-- return new DSELegacyPass();
--}
-diff --git a/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp b/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
-index 0c21ae26297d..64f5dcb94312 100644
---- a/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
-+++ b/llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
-@@ -2223,54 +2223,3 @@ PreservedAnalyses IndVarSimplifyPass::run(Loop &L, LoopAnalysisManager &AM,
- PA.preserve<MemorySSAAnalysis>();
- return PA;
- }
--
--namespace {
--
--struct IndVarSimplifyLegacyPass : public LoopPass {
-- static char ID; // Pass identification, replacement for typeid
--
-- IndVarSimplifyLegacyPass() : LoopPass(ID) {
-- initializeIndVarSimplifyLegacyPassPass(*PassRegistry::getPassRegistry());
-- }
--
-- bool runOnLoop(Loop *L, LPPassManager &LPM) override {
-- if (skipLoop(L))
-- return false;
--
-- auto *LI = &getAnalysis<LoopInfoWrapperPass>().getLoopInfo();
-- auto *SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE();
-- auto *DT = &getAnalysis<DominatorTreeWrapperPass>().getDomTree();
-- auto *TLIP = getAnalysisIfAvailable<TargetLibraryInfoWrapperPass>();
-- auto *TLI = TLIP ? &TLIP->getTLI(*L->getHeader()->getParent()) : nullptr;
-- auto *TTIP = getAnalysisIfAvailable<TargetTransformInfoWrapperPass>();
-- auto *TTI = TTIP ? &TTIP->getTTI(*L->getHeader()->getParent()) : nullptr;
-- const DataLayout &DL = L->getHeader()->getModule()->getDataLayout();
-- auto *MSSAAnalysis = getAnalysisIfAvailable<MemorySSAWrapperPass>();
-- MemorySSA *MSSA = nullptr;
-- if (MSSAAnalysis)
-- MSSA = &MSSAAnalysis->getMSSA();
--
-- IndVarSimplify IVS(LI, SE, DT, DL, TLI, TTI, MSSA, AllowIVWidening);
-- return IVS.run(L);
-- }
--
-- void getAnalysisUsage(AnalysisUsage &AU) const override {
-- AU.setPreservesCFG();
-- AU.addPreserved<MemorySSAWrapperPass>();
-- getLoopAnalysisUsage(AU);
-- }
--};
--
--} // end anonymous namespace
--
--char IndVarSimplifyLegacyPass::ID = 0;
--
--INITIALIZE_PASS_BEGIN(IndVarSimplifyLegacyPass, "indvars",
-- "Induction Variable Simplification", false, false)
--INITIALIZE_PASS_DEPENDENCY(LoopPass)
--INITIALIZE_PASS_END(IndVarSimplifyLegacyPass, "indvars",
-- "Induction Variable Simplification", false, false)
--
--Pass *llvm::createIndVarSimplifyPass() {
-- return new IndVarSimplifyLegacyPass();
--}
-diff --git a/llvm/lib/Transforms/Scalar/JumpThreading.cpp b/llvm/lib/Transforms/Scalar/JumpThreading.cpp
-index eac41f05ca14..35daa8f3874d 100644
---- a/llvm/lib/Transforms/Scalar/JumpThreading.cpp
-+++ b/llvm/lib/Transforms/Scalar/JumpThreading.cpp
-@@ -115,64 +115,6 @@ static cl::opt<bool> ThreadAcrossLoopHeaders(
- cl::desc("Allow JumpThreading to thread across loop headers, for testing"),
- cl::init(false), cl::Hidden);
-
--
--namespace {
--
-- /// This pass performs 'jump threading', which looks at blocks that have
-- /// multiple predecessors and multiple successors. If one or more of the
-- /// predecessors of the block can be proven to always jump to one of the
-- /// successors, we forward the edge from the predecessor to the successor by
-- /// duplicating the contents of this block.
-- ///
-- /// An example of when this can occur is code like this:
-- ///
-- /// if () { ...
-- /// X = 4;
-- /// }
-- /// if (X < 3) {
-- ///
-- /// In this case, the unconditional branch at the end of the first if can be
-- /// revectored to the false side of the second if.
-- class JumpThreading : public FunctionPass {
-- public:
-- static char ID; // Pass identification
--
-- JumpThreading(int T = -1) : FunctionPass(ID) {
-- initializeJumpThreadingPass(*PassRegistry::getPassRegistry());
-- }
--
-- bool runOnFunction(Function &F) override;
--
-- void getAnalysisUsage(AnalysisUsage &AU) const override {
-- AU.addRequired<DominatorTreeWrapperPass>();
-- AU.addPreserved<DominatorTreeWrapperPass>();
-- AU.addRequired<AAResultsWrapperPass>();
-- AU.addRequired<LazyValueInfoWrapperPass>();
-- AU.addPreserved<LazyValueInfoWrapperPass>();
-- AU.addPreserved<GlobalsAAWrapperPass>();
-- AU.addRequired<TargetLibraryInfoWrapperPass>();
-- AU.addRequired<TargetTransformInfoWrapperPass>();
-- }
-- };
--
--} // end anonymous namespace
--
--char JumpThreading::ID = 0;
--
--INITIALIZE_PASS_BEGIN(JumpThreading, "jump-threading",
-- "Jump Threading", false, false)
--INITIALIZE_PASS_DEPENDENCY(DominatorTreeWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(LazyValueInfoWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(TargetLibraryInfoWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(AAResultsWrapperPass)
--INITIALIZE_PASS_END(JumpThreading, "jump-threading",
-- "Jump Threading", false, false)
--
--// Public interface to the Jump Threading pass
--FunctionPass *llvm::createJumpThreadingPass(int Threshold) {
-- return new JumpThreading(Threshold);
--}
--
- JumpThreadingPass::JumpThreadingPass(int T) {
- DefaultBBDupThreshold = (T == -1) ? BBDuplicateThreshold : unsigned(T);
- }
-@@ -303,35 +245,6 @@ static void updatePredecessorProfileMetadata(PHINode *PN, BasicBlock *BB) {
- }
- }
-
--/// runOnFunction - Toplevel algorithm.
--bool JumpThreading::runOnFunction(Function &F) {
-- if (skipFunction(F))
-- return false;
-- auto TTI = &getAnalysis<TargetTransformInfoWrapperPass>().getTTI(F);
-- // Jump Threading has no sense for the targets with divergent CF
-- if (TTI->hasBranchDivergence())
-- return false;
-- auto TLI = &getAnalysis<TargetLibraryInfoWrapperPass>().getTLI(F);
-- auto DT = &getAnalysis<DominatorTreeWrapperPass>().getDomTree();
-- auto LVI = &getAnalysis<LazyValueInfoWrapperPass>().getLVI();
-- auto AA = &getAnalysis<AAResultsWrapperPass>().getAAResults();
--
-- LoopInfo LI{*DT};
-- auto BPI = std::make_unique<BranchProbabilityInfo>(F, LI, TLI);
-- auto BFI = std::make_unique<BlockFrequencyInfo>(F, *BPI, LI);
--
-- JumpThreadingPass Impl;
-- bool Changed = Impl.runImpl(F, nullptr, TLI, TTI, LVI, AA,
-- std::make_unique<DomTreeUpdater>(
-- DT, DomTreeUpdater::UpdateStrategy::Lazy),
-- BFI.get(), BPI.get());
-- if (PrintLVIAfterJumpThreading) {
-- dbgs() << "LVI for function '" << F.getName() << "':\n";
-- LVI->printLVI(F, Impl.getDomTreeUpdater()->getDomTree(), dbgs());
-- }
-- return Changed;
--}
--
- PreservedAnalyses JumpThreadingPass::run(Function &F,
- FunctionAnalysisManager &AM) {
- auto &TTI = AM.getResult<TargetIRAnalysis>(F);
-diff --git a/llvm/lib/Transforms/Scalar/Scalar.cpp b/llvm/lib/Transforms/Scalar/Scalar.cpp
-index 9a3d243859be..26a1e22f3317 100644
---- a/llvm/lib/Transforms/Scalar/Scalar.cpp
-+++ b/llvm/lib/Transforms/Scalar/Scalar.cpp
-@@ -29,15 +29,12 @@ using namespace llvm;
- /// initializeScalarOptsPasses - Initialize all passes linked into the
- /// ScalarOpts library.
- void llvm::initializeScalarOpts(PassRegistry &Registry) {
-- initializeADCELegacyPassPass(Registry);
- initializeBDCELegacyPassPass(Registry);
- initializeAlignmentFromAssumptionsPass(Registry);
- initializeCallSiteSplittingLegacyPassPass(Registry);
- initializeConstantHoistingLegacyPassPass(Registry);
-- initializeCorrelatedValuePropagationPass(Registry);
- initializeDCELegacyPassPass(Registry);
- initializeScalarizerLegacyPassPass(Registry);
-- initializeDSELegacyPassPass(Registry);
- initializeGuardWideningLegacyPassPass(Registry);
- initializeLoopGuardWideningLegacyPassPass(Registry);
- initializeGVNLegacyPassPass(Registry);
-@@ -49,11 +46,8 @@ void llvm::initializeScalarOpts(PassRegistry &Registry) {
- initializeGVNSinkLegacyPassPass(Registry);
- initializeFlattenCFGLegacyPassPass(Registry);
- initializeIRCELegacyPassPass(Registry);
-- initializeIndVarSimplifyLegacyPassPass(Registry);
- initializeInferAddressSpacesPass(Registry);
- initializeInstSimplifyLegacyPassPass(Registry);
-- initializeJumpThreadingPass(Registry);
-- initializeDFAJumpThreadingLegacyPassPass(Registry);
- initializeLegacyLICMPassPass(Registry);
- initializeLegacyLoopSinkPassPass(Registry);
- initializeLoopDataPrefetchLegacyPassPass(Registry);
-diff --git a/llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp b/llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp
-index 5dd469c7af4b..ff2d5a017590 100644
---- a/llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp
-+++ b/llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp
-@@ -50,27 +50,6 @@ using namespace llvm;
- STATISTIC(NumWrappedOneCond, "Number of One-Condition Wrappers Inserted");
- STATISTIC(NumWrappedTwoCond, "Number of Two-Condition Wrappers Inserted");
-
--namespace {
--class LibCallsShrinkWrapLegacyPass : public FunctionPass {
--public:
-- static char ID; // Pass identification, replacement for typeid
-- explicit LibCallsShrinkWrapLegacyPass() : FunctionPass(ID) {
-- initializeLibCallsShrinkWrapLegacyPassPass(
-- *PassRegistry::getPassRegistry());
-- }
-- void getAnalysisUsage(AnalysisUsage &AU) const override;
-- bool runOnFunction(Function &F) override;
--};
--}
--
--char LibCallsShrinkWrapLegacyPass::ID = 0;
--INITIALIZE_PASS_BEGIN(LibCallsShrinkWrapLegacyPass, "libcalls-shrinkwrap",
-- "Conditionally eliminate dead library calls", false,
-- false)
--INITIALIZE_PASS_DEPENDENCY(TargetLibraryInfoWrapperPass)
--INITIALIZE_PASS_END(LibCallsShrinkWrapLegacyPass, "libcalls-shrinkwrap",
-- "Conditionally eliminate dead library calls", false, false)
--
- namespace {
- class LibCallsShrinkWrap : public InstVisitor<LibCallsShrinkWrap> {
- public:
-@@ -515,12 +494,6 @@ bool LibCallsShrinkWrap::perform(CallInst *CI) {
- return performCallErrors(CI, Func);
- }
-
--void LibCallsShrinkWrapLegacyPass::getAnalysisUsage(AnalysisUsage &AU) const {
-- AU.addPreserved<DominatorTreeWrapperPass>();
-- AU.addPreserved<GlobalsAAWrapperPass>();
-- AU.addRequired<TargetLibraryInfoWrapperPass>();
--}
--
- static bool runImpl(Function &F, const TargetLibraryInfo &TLI,
- DominatorTree *DT) {
- if (F.hasFnAttribute(Attribute::OptimizeForSize))
-@@ -534,21 +507,6 @@ static bool runImpl(Function &F, const TargetLibraryInfo &TLI,
- return Changed;
- }
-
--bool LibCallsShrinkWrapLegacyPass::runOnFunction(Function &F) {
-- auto &TLI = getAnalysis<TargetLibraryInfoWrapperPass>().getTLI(F);
-- auto *DTWP = getAnalysisIfAvailable<DominatorTreeWrapperPass>();
-- auto *DT = DTWP ? &DTWP->getDomTree() : nullptr;
-- return runImpl(F, TLI, DT);
--}
--
--namespace llvm {
--char &LibCallsShrinkWrapPassID = LibCallsShrinkWrapLegacyPass::ID;
--
--// Public interface to LibCallsShrinkWrap pass.
--FunctionPass *createLibCallsShrinkWrapPass() {
-- return new LibCallsShrinkWrapLegacyPass();
--}
--
- PreservedAnalyses LibCallsShrinkWrapPass::run(Function &F,
- FunctionAnalysisManager &FAM) {
- auto &TLI = FAM.getResult<TargetLibraryAnalysis>(F);
-@@ -559,4 +517,3 @@ PreservedAnalyses LibCallsShrinkWrapPass::run(Function &F,
- PA.preserve<DominatorTreeAnalysis>();
- return PA;
- }
--}
-diff --git a/llvm/lib/Transforms/Utils/Utils.cpp b/llvm/lib/Transforms/Utils/Utils.cpp
-index d86f20c7bb6f..59d1b8e42dc1 100644
---- a/llvm/lib/Transforms/Utils/Utils.cpp
-+++ b/llvm/lib/Transforms/Utils/Utils.cpp
-@@ -30,7 +30,6 @@ void llvm::initializeTransformUtils(PassRegistry &Registry) {
- initializeCanonicalizeFreezeInLoopsPass(Registry);
- initializeInstNamerPass(Registry);
- initializeLCSSAWrapperPassPass(Registry);
-- initializeLibCallsShrinkWrapLegacyPassPass(Registry);
- initializeLoopSimplifyPass(Registry);
- initializeLowerGlobalDtorsLegacyPassPass(Registry);
- initializeLowerInvokeLegacyPassPass(Registry);
-diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
-index 9083b7b3c712..df6f3b33fac0 100644
---- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
-+++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
-@@ -2250,73 +2250,6 @@ static void collectSupportedLoops(Loop &L, LoopInfo *LI,
- collectSupportedLoops(*InnerL, LI, ORE, V);
- }
-
--namespace {
--
--/// The LoopVectorize Pass.
--struct LoopVectorize : public FunctionPass {
-- /// Pass identification, replacement for typeid
-- static char ID;
--
-- LoopVectorizePass Impl;
--
-- explicit LoopVectorize(bool InterleaveOnlyWhenForced = false,
-- bool VectorizeOnlyWhenForced = false)
-- : FunctionPass(ID),
-- Impl({InterleaveOnlyWhenForced, VectorizeOnlyWhenForced}) {
-- initializeLoopVectorizePass(*PassRegistry::getPassRegistry());
-- }
--
-- bool runOnFunction(Function &F) override {
-- if (skipFunction(F))
-- return false;
--
-- auto *SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE();
-- auto *LI = &getAnalysis<LoopInfoWrapperPass>().getLoopInfo();
-- auto *TTI = &getAnalysis<TargetTransformInfoWrapperPass>().getTTI(F);
-- auto *DT = &getAnalysis<DominatorTreeWrapperPass>().getDomTree();
-- auto *BFI = &getAnalysis<BlockFrequencyInfoWrapperPass>().getBFI();
-- auto *TLIP = getAnalysisIfAvailable<TargetLibraryInfoWrapperPass>();
-- auto *TLI = TLIP ? &TLIP->getTLI(F) : nullptr;
-- auto *AC = &getAnalysis<AssumptionCacheTracker>().getAssumptionCache(F);
-- auto &LAIs = getAnalysis<LoopAccessLegacyAnalysis>().getLAIs();
-- auto *DB = &getAnalysis<DemandedBitsWrapperPass>().getDemandedBits();
-- auto *ORE = &getAnalysis<OptimizationRemarkEmitterWrapperPass>().getORE();
-- auto *PSI = &getAnalysis<ProfileSummaryInfoWrapperPass>().getPSI();
--
-- return Impl
-- .runImpl(F, *SE, *LI, *TTI, *DT, BFI, TLI, *DB, *AC, LAIs, *ORE, PSI)
-- .MadeAnyChange;
-- }
--
-- void getAnalysisUsage(AnalysisUsage &AU) const override {
-- AU.addRequired<AssumptionCacheTracker>();
-- AU.addRequired<BlockFrequencyInfoWrapperPass>();
-- AU.addRequired<DominatorTreeWrapperPass>();
-- AU.addRequired<LoopInfoWrapperPass>();
-- AU.addRequired<ScalarEvolutionWrapperPass>();
-- AU.addRequired<TargetTransformInfoWrapperPass>();
-- AU.addRequired<LoopAccessLegacyAnalysis>();
-- AU.addRequired<DemandedBitsWrapperPass>();
-- AU.addRequired<OptimizationRemarkEmitterWrapperPass>();
-- AU.addRequired<InjectTLIMappingsLegacy>();
--
-- // We currently do not preserve loopinfo/dominator analyses with outer loop
-- // vectorization. Until this is addressed, mark these analyses as preserved
-- // only for non-VPlan-native path.
-- // TODO: Preserve Loop and Dominator analyses for VPlan-native path.
-- if (!EnableVPlanNativePath) {
-- AU.addPreserved<LoopInfoWrapperPass>();
-- AU.addPreserved<DominatorTreeWrapperPass>();
-- }
--
-- AU.addPreserved<BasicAAWrapperPass>();
-- AU.addPreserved<GlobalsAAWrapperPass>();
-- AU.addRequired<ProfileSummaryInfoWrapperPass>();
-- }
--};
--
--} // end anonymous namespace
--
- //===----------------------------------------------------------------------===//
- // Implementation of LoopVectorizationLegality, InnerLoopVectorizer and
- // LoopVectorizationCostModel and LoopVectorizationPlanner.
-@@ -7463,37 +7396,6 @@ LoopVectorizationCostModel::getInstructionCost(Instruction *I, ElementCount VF,
- } // end of switch.
- }
-
--char LoopVectorize::ID = 0;
--
--static const char lv_name[] = "Loop Vectorization";
--
--INITIALIZE_PASS_BEGIN(LoopVectorize, LV_NAME, lv_name, false, false)
--INITIALIZE_PASS_DEPENDENCY(TargetTransformInfoWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(BasicAAWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(GlobalsAAWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(AssumptionCacheTracker)
--INITIALIZE_PASS_DEPENDENCY(BlockFrequencyInfoWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(DominatorTreeWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(ScalarEvolutionWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(LoopInfoWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(LoopAccessLegacyAnalysis)
--INITIALIZE_PASS_DEPENDENCY(DemandedBitsWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(OptimizationRemarkEmitterWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(ProfileSummaryInfoWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(InjectTLIMappingsLegacy)
--INITIALIZE_PASS_END(LoopVectorize, LV_NAME, lv_name, false, false)
--
--namespace llvm {
--
--Pass *createLoopVectorizePass() { return new LoopVectorize(); }
--
--Pass *createLoopVectorizePass(bool InterleaveOnlyWhenForced,
-- bool VectorizeOnlyWhenForced) {
-- return new LoopVectorize(InterleaveOnlyWhenForced, VectorizeOnlyWhenForced);
--}
--
--} // end namespace llvm
--
- void LoopVectorizationCostModel::collectValuesToIgnore() {
- // Ignore ephemeral values.
- CodeMetrics::collectEphemeralValues(TheLoop, AC, ValuesToIgnore);
-diff --git a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
-index bbaccb5cd282..91d99e5008cc 100644
---- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
-+++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
-@@ -11645,60 +11645,6 @@ void BoUpSLP::computeMinimumValueSizes() {
- MinBWs[Scalar] = std::make_pair(MaxBitWidth, !IsKnownPositive);
- }
-
--namespace {
--
--/// The SLPVectorizer Pass.
--struct SLPVectorizer : public FunctionPass {
-- SLPVectorizerPass Impl;
--
-- /// Pass identification, replacement for typeid
-- static char ID;
--
-- explicit SLPVectorizer() : FunctionPass(ID) {
-- initializeSLPVectorizerPass(*PassRegistry::getPassRegistry());
-- }
--
-- bool doInitialization(Module &M) override { return false; }
--
-- bool runOnFunction(Function &F) override {
-- if (skipFunction(F))
-- return false;
--
-- auto *SE = &getAnalysis<ScalarEvolutionWrapperPass>().getSE();
-- auto *TTI = &getAnalysis<TargetTransformInfoWrapperPass>().getTTI(F);
-- auto *TLIP = getAnalysisIfAvailable<TargetLibraryInfoWrapperPass>();
-- auto *TLI = TLIP ? &TLIP->getTLI(F) : nullptr;
-- auto *AA = &getAnalysis<AAResultsWrapperPass>().getAAResults();
-- auto *LI = &getAnalysis<LoopInfoWrapperPass>().getLoopInfo();
-- auto *DT = &getAnalysis<DominatorTreeWrapperPass>().getDomTree();
-- auto *AC = &getAnalysis<AssumptionCacheTracker>().getAssumptionCache(F);
-- auto *DB = &getAnalysis<DemandedBitsWrapperPass>().getDemandedBits();
-- auto *ORE = &getAnalysis<OptimizationRemarkEmitterWrapperPass>().getORE();
--
-- return Impl.runImpl(F, SE, TTI, TLI, AA, LI, DT, AC, DB, ORE);
-- }
--
-- void getAnalysisUsage(AnalysisUsage &AU) const override {
-- FunctionPass::getAnalysisUsage(AU);
-- AU.addRequired<AssumptionCacheTracker>();
-- AU.addRequired<ScalarEvolutionWrapperPass>();
-- AU.addRequired<AAResultsWrapperPass>();
-- AU.addRequired<TargetTransformInfoWrapperPass>();
-- AU.addRequired<LoopInfoWrapperPass>();
-- AU.addRequired<DominatorTreeWrapperPass>();
-- AU.addRequired<DemandedBitsWrapperPass>();
-- AU.addRequired<OptimizationRemarkEmitterWrapperPass>();
-- AU.addRequired<InjectTLIMappingsLegacy>();
-- AU.addPreserved<LoopInfoWrapperPass>();
-- AU.addPreserved<DominatorTreeWrapperPass>();
-- AU.addPreserved<AAResultsWrapperPass>();
-- AU.addPreserved<GlobalsAAWrapperPass>();
-- AU.setPreservesCFG();
-- }
--};
--
--} // end anonymous namespace
--
- PreservedAnalyses SLPVectorizerPass::run(Function &F, FunctionAnalysisManager &AM) {
- auto *SE = &AM.getResult<ScalarEvolutionAnalysis>(F);
- auto *TTI = &AM.getResult<TargetIRAnalysis>(F);
-@@ -14600,20 +14546,3 @@ bool SLPVectorizerPass::vectorizeStoreChains(BoUpSLP &R) {
- }
- return Changed;
- }
--
--char SLPVectorizer::ID = 0;
--
--static const char lv_name[] = "SLP Vectorizer";
--
--INITIALIZE_PASS_BEGIN(SLPVectorizer, SV_NAME, lv_name, false, false)
--INITIALIZE_PASS_DEPENDENCY(AAResultsWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(TargetTransformInfoWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(AssumptionCacheTracker)
--INITIALIZE_PASS_DEPENDENCY(ScalarEvolutionWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(LoopSimplify)
--INITIALIZE_PASS_DEPENDENCY(DemandedBitsWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(OptimizationRemarkEmitterWrapperPass)
--INITIALIZE_PASS_DEPENDENCY(InjectTLIMappingsLegacy)
--INITIALIZE_PASS_END(SLPVectorizer, SV_NAME, lv_name, false, false)
--
--Pass *llvm::createSLPVectorizerPass() { return new SLPVectorizer(); }
-diff --git a/llvm/lib/Transforms/Vectorize/Vectorize.cpp b/llvm/lib/Transforms/Vectorize/Vectorize.cpp
-index 6a335e9120bb..cea47334d507 100644
---- a/llvm/lib/Transforms/Vectorize/Vectorize.cpp
-+++ b/llvm/lib/Transforms/Vectorize/Vectorize.cpp
-@@ -22,8 +22,6 @@ using namespace llvm;
-
- /// Initialize all passes linked into the Vectorization library.
- void llvm::initializeVectorization(PassRegistry &Registry) {
-- initializeLoopVectorizePass(Registry);
-- initializeSLPVectorizerPass(Registry);
- initializeLoadStoreVectorizerLegacyPassPass(Registry);
- }
-
-diff --git a/llvm/test/CodeGen/Hexagon/hexagon_vector_loop_carried_reuse.ll b/llvm/test/CodeGen/Hexagon/hexagon_vector_loop_carried_reuse.ll
-index d7b18ae078ff..0771fda02cfb 100644
---- a/llvm/test/CodeGen/Hexagon/hexagon_vector_loop_carried_reuse.ll
-+++ b/llvm/test/CodeGen/Hexagon/hexagon_vector_loop_carried_reuse.ll
-@@ -1,4 +1,4 @@
--; RUN: opt < %s -hexagon-vlcr -adce -S | FileCheck %s
-+; RUN: opt < %s -hexagon-vlcr | opt -passes=adce -S | FileCheck %s
-
- ; CHECK: %.hexagon.vlcr = tail call <32 x i32> @llvm.hexagon.V6.vmaxub.128B
- ; ModuleID = 'hexagon_vector_loop_carried_reuse.c'
-diff --git a/llvm/test/CodeGen/Hexagon/hexagon_vector_loop_carried_reuse_commutative.ll b/llvm/test/CodeGen/Hexagon/hexagon_vector_loop_carried_reuse_commutative.ll
-index b280830d403a..25afb9f1a137 100644
---- a/llvm/test/CodeGen/Hexagon/hexagon_vector_loop_carried_reuse_commutative.ll
-+++ b/llvm/test/CodeGen/Hexagon/hexagon_vector_loop_carried_reuse_commutative.ll
-@@ -1,4 +1,4 @@
--; RUN: opt -march=hexagon < %s -hexagon-vlcr -adce -S | FileCheck %s
-+; RUN: opt < %s -march=hexagon -hexagon-vlcr | opt -passes=adce -S | FileCheck %s
-
- ; CHECK: %v32.hexagon.vlcr = tail call <32 x i32> @llvm.hexagon.V6.vmaxub.128B
-
-diff --git a/llvm/test/CodeGen/Hexagon/hexagon_vector_loop_carried_reuse_constant.ll b/llvm/test/CodeGen/Hexagon/hexagon_vector_loop_carried_reuse_constant.ll
-index c64404f97775..53973423732c 100644
---- a/llvm/test/CodeGen/Hexagon/hexagon_vector_loop_carried_reuse_constant.ll
-+++ b/llvm/test/CodeGen/Hexagon/hexagon_vector_loop_carried_reuse_constant.ll
-@@ -1,4 +1,4 @@
--; RUN: opt < %s -hexagon-vlcr -adce -S | FileCheck %s
-+; RUN: opt < %s -hexagon-vlcr | opt -passes=adce -S | FileCheck %s
-
- ; CHECK-NOT: %.hexagon.vlcr
- ; ModuleID = 'hexagon_vector_loop_carried_reuse.c'
-diff --git a/llvm/test/Transforms/LoopStrengthReduce/scev-after-loopinstsimplify.ll b/llvm/test/Transforms/LoopStrengthReduce/scev-after-loopinstsimplify.ll
-index 6c91f643e7a9..6e059b5d8fa5 100644
---- a/llvm/test/Transforms/LoopStrengthReduce/scev-after-loopinstsimplify.ll
-+++ b/llvm/test/Transforms/LoopStrengthReduce/scev-after-loopinstsimplify.ll
-@@ -1,4 +1,4 @@
--; RUN: opt %s -indvars -loop-instsimplify -loop-reduce
-+; RUN: opt %s -passes=indvars,loop-instsimplify,loop-reduce
- ; We are only checking that there is no crash!
-
- ; https://bugs.llvm.org/show_bug.cgi?id=37936
-diff --git a/llvm/test/Transforms/LoopVectorize/AArch64/sleef-calls-aarch64.ll b/llvm/test/Transforms/LoopVectorize/AArch64/sleef-calls-aarch64.ll
-index ed9e1b4b6fb2..be4309996fbb 100644
---- a/llvm/test/Transforms/LoopVectorize/AArch64/sleef-calls-aarch64.ll
-+++ b/llvm/test/Transforms/LoopVectorize/AArch64/sleef-calls-aarch64.ll
-@@ -1,5 +1,5 @@
- ; Do NOT use -O3. It will lower exp2 to ldexp, and the test will fail.
--; RUN: opt -vector-library=sleefgnuabi -replace-with-veclib -loop-unroll -loop-vectorize -S < %s | FileCheck %s
-+; RUN: opt -vector-library=sleefgnuabi -replace-with-veclib < %s | opt -vector-library=sleefgnuabi -passes=inject-tli-mappings,loop-unroll,loop-vectorize -S | FileCheck %s
-
- target datalayout = "e-m:e-i8:8:32-i16:16:32-i64:64-i128:128-n32:64-S128"
- target triple = "aarch64-unknown-linux-gnu"
-diff --git a/polly/lib/Transform/Canonicalization.cpp b/polly/lib/Transform/Canonicalization.cpp
-index 8cb235f94601..901299d8f02c 100644
---- a/polly/lib/Transform/Canonicalization.cpp
-+++ b/polly/lib/Transform/Canonicalization.cpp
-@@ -56,7 +56,6 @@ void polly::registerCanonicalicationPasses(llvm::legacy::PassManagerBase &PM) {
- PM.add(createBarrierNoopPass());
- }
- PM.add(llvm::createInstructionCombiningPass());
-- PM.add(llvm::createIndVarSimplifyPass());
- }
-
- /// Adapted from llvm::PassBuilder::buildInlinerPipeline
---
-2.39.2
-