diff --git a/clang/tools/clang-fuzzer/fuzzer-initialize/fuzzer_initialize.cpp b/clang/tools/clang-fuzzer/fuzzer-initialize/fuzzer_initialize.cpp --- a/clang/tools/clang-fuzzer/fuzzer-initialize/fuzzer_initialize.cpp +++ b/clang/tools/clang-fuzzer/fuzzer-initialize/fuzzer_initialize.cpp @@ -43,7 +43,6 @@ PassRegistry &Registry = *PassRegistry::getPassRegistry(); initializeCore(Registry); initializeScalarOpts(Registry); - initializeVectorization(Registry); initializeIPO(Registry); initializeAnalysis(Registry); initializeTransformUtils(Registry); diff --git a/clang/tools/clang-fuzzer/handle-llvm/handle_llvm.cpp b/clang/tools/clang-fuzzer/handle-llvm/handle_llvm.cpp --- a/clang/tools/clang-fuzzer/handle-llvm/handle_llvm.cpp +++ b/clang/tools/clang-fuzzer/handle-llvm/handle_llvm.cpp @@ -44,7 +44,6 @@ #include "llvm/Target/TargetMachine.h" #include "llvm/Transforms/IPO.h" #include "llvm/Transforms/IPO/PassManagerBuilder.h" -#include "llvm/Transforms/Vectorize.h" using namespace llvm; diff --git a/llvm/include/llvm/InitializePasses.h b/llvm/include/llvm/InitializePasses.h --- a/llvm/include/llvm/InitializePasses.h +++ b/llvm/include/llvm/InitializePasses.h @@ -27,9 +27,6 @@ /// Initialize all passes linked into the ScalarOpts library. void initializeScalarOpts(PassRegistry&); -/// Initialize all passes linked into the Vectorize library. -void initializeVectorization(PassRegistry&); - /// Initialize all passes linked into the InstCombine library. void initializeInstCombine(PassRegistry&); diff --git a/llvm/include/llvm/LinkAllPasses.h b/llvm/include/llvm/LinkAllPasses.h --- a/llvm/include/llvm/LinkAllPasses.h +++ b/llvm/include/llvm/LinkAllPasses.h @@ -54,7 +54,6 @@ #include "llvm/Transforms/Utils.h" #include "llvm/Transforms/Utils/SymbolRewriter.h" #include "llvm/Transforms/Utils/UnifyFunctionExitNodes.h" -#include "llvm/Transforms/Vectorize.h" #include namespace { @@ -196,10 +195,6 @@ (void) llvm::createLowerAtomicPass(); (void) llvm::createCorrelatedValuePropagationPass(); (void) llvm::createMemDepPrinter(); - (void) llvm::createLoopVectorizePass(); - (void) llvm::createSLPVectorizerPass(); - (void) llvm::createLoadStoreVectorizerPass(); - (void) llvm::createVectorCombinePass(); (void) llvm::createPartiallyInlineLibCallsPass(); (void) llvm::createScalarizerPass(); (void) llvm::createSeparateConstOffsetFromGEPPass(); diff --git a/llvm/include/llvm/Transforms/Vectorize.h b/llvm/include/llvm/Transforms/Vectorize.h deleted file mode 100644 --- a/llvm/include/llvm/Transforms/Vectorize.h +++ /dev/null @@ -1,149 +0,0 @@ -//===-- Vectorize.h - Vectorization Transformations -------------*- C++ -*-===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -// -// This header file defines prototypes for accessor functions that expose passes -// in the Vectorize transformations library. -// -//===----------------------------------------------------------------------===// - -#ifndef LLVM_TRANSFORMS_VECTORIZE_H -#define LLVM_TRANSFORMS_VECTORIZE_H - -namespace llvm { -class BasicBlock; -class Pass; - -//===----------------------------------------------------------------------===// -/// Vectorize configuration. -struct VectorizeConfig { - //===--------------------------------------------------------------------===// - // Target architecture related parameters - - /// The size of the native vector registers. - unsigned VectorBits; - - /// Vectorize boolean values. - bool VectorizeBools; - - /// Vectorize integer values. - bool VectorizeInts; - - /// Vectorize floating-point values. - bool VectorizeFloats; - - /// Vectorize pointer values. - bool VectorizePointers; - - /// Vectorize casting (conversion) operations. - bool VectorizeCasts; - - /// Vectorize floating-point math intrinsics. - bool VectorizeMath; - - /// Vectorize bit intrinsics. - bool VectorizeBitManipulations; - - /// Vectorize the fused-multiply-add intrinsic. - bool VectorizeFMA; - - /// Vectorize select instructions. - bool VectorizeSelect; - - /// Vectorize comparison instructions. - bool VectorizeCmp; - - /// Vectorize getelementptr instructions. - bool VectorizeGEP; - - /// Vectorize loads and stores. - bool VectorizeMemOps; - - /// Only generate aligned loads and stores. - bool AlignedOnly; - - //===--------------------------------------------------------------------===// - // Misc parameters - - /// The required chain depth for vectorization. - unsigned ReqChainDepth; - - /// The maximum search distance for instruction pairs. - unsigned SearchLimit; - - /// The maximum number of candidate pairs with which to use a full - /// cycle check. - unsigned MaxCandPairsForCycleCheck; - - /// Replicating one element to a pair breaks the chain. - bool SplatBreaksChain; - - /// The maximum number of pairable instructions per group. - unsigned MaxInsts; - - /// The maximum number of candidate instruction pairs per group. - unsigned MaxPairs; - - /// The maximum number of pairing iterations. - unsigned MaxIter; - - /// Don't try to form odd-length vectors. - bool Pow2LenOnly; - - /// Don't boost the chain-depth contribution of loads and stores. - bool NoMemOpBoost; - - /// Use a fast instruction dependency analysis. - bool FastDep; - - /// Initialize the VectorizeConfig from command line options. - 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. -/// -/// @param BB The BasicBlock to be vectorized -/// @param P The current running pass, should require AliasAnalysis and -/// ScalarEvolution. After the vectorization, AliasAnalysis, -/// ScalarEvolution and CFG are preserved. -/// -/// @return True if the BB is changed, false otherwise. -/// -bool vectorizeBasicBlock(Pass *P, BasicBlock &BB, - const VectorizeConfig &C = VectorizeConfig()); - -//===----------------------------------------------------------------------===// -// -// LoadStoreVectorizer - Create vector loads and stores, but leave scalar -// operations. -// -Pass *createLoadStoreVectorizerPass(); - -//===----------------------------------------------------------------------===// -// -// Optimize partial vector operations using target cost models. -// -Pass *createVectorCombinePass(); - -} // End llvm namespace - -#endif diff --git a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp --- a/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp +++ b/llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp @@ -57,7 +57,6 @@ #include "llvm/Transforms/Scalar/InferAddressSpaces.h" #include "llvm/Transforms/Utils.h" #include "llvm/Transforms/Utils/SimplifyLibCalls.h" -#include "llvm/Transforms/Vectorize.h" using namespace llvm; using namespace llvm::PatternMatch; diff --git a/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp b/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp --- a/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp +++ b/llvm/lib/Target/NVPTX/NVPTXTargetMachine.cpp @@ -34,7 +34,6 @@ #include "llvm/Transforms/IPO/PassManagerBuilder.h" #include "llvm/Transforms/Scalar.h" #include "llvm/Transforms/Scalar/GVN.h" -#include "llvm/Transforms/Vectorize.h" #include #include diff --git a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp --- a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp +++ b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp @@ -39,7 +39,6 @@ #include "llvm/Transforms/Scalar/LoopUnrollPass.h" #include "llvm/Transforms/Scalar/SimpleLoopUnswitch.h" #include "llvm/Transforms/Utils.h" -#include "llvm/Transforms/Vectorize.h" using namespace llvm; @@ -272,8 +271,6 @@ /// 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 @@ -318,14 +315,6 @@ PM.add(createBitTrackingDCEPass()); } - // Optimize parallel scalar instruction chains into SIMD instructions. - if (SLPVectorize) { - PM.add(createSLPVectorizerPass()); - } - - // Enhance/cleanup vector code. - PM.add(createVectorCombinePass()); - if (!IsFullLTO) { addExtensionsToPM(EP_Peephole, PM); PM.add(createInstructionCombiningPass()); diff --git a/llvm/lib/Transforms/Vectorize/CMakeLists.txt b/llvm/lib/Transforms/Vectorize/CMakeLists.txt --- a/llvm/lib/Transforms/Vectorize/CMakeLists.txt +++ b/llvm/lib/Transforms/Vectorize/CMakeLists.txt @@ -3,7 +3,6 @@ LoopVectorizationLegality.cpp LoopVectorize.cpp SLPVectorizer.cpp - Vectorize.cpp VectorCombine.cpp VPlan.cpp VPlanHCFGBuilder.cpp diff --git a/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp b/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp --- a/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp +++ b/llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp @@ -78,7 +78,6 @@ #include "llvm/Support/MathExtras.h" #include "llvm/Support/raw_ostream.h" #include "llvm/Transforms/Utils/Local.h" -#include "llvm/Transforms/Vectorize.h" #include #include #include @@ -190,67 +189,8 @@ Align Alignment); }; -class LoadStoreVectorizerLegacyPass : public FunctionPass { -public: - static char ID; - - LoadStoreVectorizerLegacyPass() : FunctionPass(ID) { - initializeLoadStoreVectorizerLegacyPassPass(*PassRegistry::getPassRegistry()); - } - - bool runOnFunction(Function &F) override; - - StringRef getPassName() const override { - return "GPU Load and Store Vectorizer"; - } - - void getAnalysisUsage(AnalysisUsage &AU) const override { - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - AU.setPreservesCFG(); - } -}; - } // end anonymous namespace -char LoadStoreVectorizerLegacyPass::ID = 0; - -INITIALIZE_PASS_BEGIN(LoadStoreVectorizerLegacyPass, DEBUG_TYPE, - "Vectorize load and Store instructions", false, false) -INITIALIZE_PASS_DEPENDENCY(SCEVAAWrapperPass) -INITIALIZE_PASS_DEPENDENCY(AssumptionCacheTracker); -INITIALIZE_PASS_DEPENDENCY(DominatorTreeWrapperPass) -INITIALIZE_PASS_DEPENDENCY(AAResultsWrapperPass) -INITIALIZE_PASS_DEPENDENCY(GlobalsAAWrapperPass) -INITIALIZE_PASS_DEPENDENCY(TargetTransformInfoWrapperPass) -INITIALIZE_PASS_END(LoadStoreVectorizerLegacyPass, DEBUG_TYPE, - "Vectorize load and store instructions", false, false) - -Pass *llvm::createLoadStoreVectorizerPass() { - return new LoadStoreVectorizerLegacyPass(); -} - -bool LoadStoreVectorizerLegacyPass::runOnFunction(Function &F) { - // Don't vectorize when the attribute NoImplicitFloat is used. - if (skipFunction(F) || F.hasFnAttribute(Attribute::NoImplicitFloat)) - return false; - - AliasAnalysis &AA = getAnalysis().getAAResults(); - DominatorTree &DT = getAnalysis().getDomTree(); - ScalarEvolution &SE = getAnalysis().getSE(); - TargetTransformInfo &TTI = - getAnalysis().getTTI(F); - - AssumptionCache &AC = - getAnalysis().getAssumptionCache(F); - - Vectorizer V(F, AA, AC, DT, SE, TTI); - return V.run(); -} - PreservedAnalyses LoadStoreVectorizerPass::run(Function &F, FunctionAnalysisManager &AM) { // Don't vectorize when the attribute NoImplicitFloat is used. if (F.hasFnAttribute(Attribute::NoImplicitFloat)) diff --git a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp --- a/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp +++ b/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp @@ -2181,76 +2181,6 @@ 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().getSE(); - auto *LI = &getAnalysis().getLoopInfo(); - auto *TTI = &getAnalysis().getTTI(F); - auto *DT = &getAnalysis().getDomTree(); - auto *BFI = &getAnalysis().getBFI(); - auto *TLIP = getAnalysisIfAvailable(); - auto *TLI = TLIP ? &TLIP->getTLI(F) : nullptr; - auto *AA = &getAnalysis().getAAResults(); - auto *AC = &getAnalysis().getAssumptionCache(F); - auto &LAIs = getAnalysis().getLAIs(); - auto *DB = &getAnalysis().getDemandedBits(); - auto *ORE = &getAnalysis().getORE(); - auto *PSI = &getAnalysis().getPSI(); - - return Impl - .runImpl(F, *SE, *LI, *TTI, *DT, *BFI, TLI, *DB, *AA, *AC, LAIs, *ORE, - PSI) - .MadeAnyChange; - } - - void getAnalysisUsage(AnalysisUsage &AU) const override { - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - - // 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(); - AU.addPreserved(); - } - - AU.addPreserved(); - AU.addPreserved(); - AU.addRequired(); - } -}; - -} // end anonymous namespace - //===----------------------------------------------------------------------===// // Implementation of LoopVectorizationLegality, InnerLoopVectorizer and // LoopVectorizationCostModel and LoopVectorizationPlanner. @@ -7335,38 +7265,6 @@ } // 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(AAResultsWrapperPass) -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 --- a/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp +++ b/llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp @@ -88,7 +88,6 @@ #include "llvm/Transforms/Utils/InjectTLIMappings.h" #include "llvm/Transforms/Utils/Local.h" #include "llvm/Transforms/Utils/LoopUtils.h" -#include "llvm/Transforms/Vectorize.h" #include #include #include @@ -10508,60 +10507,6 @@ 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().getSE(); - auto *TTI = &getAnalysis().getTTI(F); - auto *TLIP = getAnalysisIfAvailable(); - auto *TLI = TLIP ? &TLIP->getTLI(F) : nullptr; - auto *AA = &getAnalysis().getAAResults(); - auto *LI = &getAnalysis().getLoopInfo(); - auto *DT = &getAnalysis().getDomTree(); - auto *AC = &getAnalysis().getAssumptionCache(F); - auto *DB = &getAnalysis().getDemandedBits(); - auto *ORE = &getAnalysis().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(); - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - AU.addPreserved(); - AU.addPreserved(); - AU.addPreserved(); - AU.addPreserved(); - AU.setPreservesCFG(); - } -}; - -} // end anonymous namespace - PreservedAnalyses SLPVectorizerPass::run(Function &F, FunctionAnalysisManager &AM) { auto *SE = &AM.getResult(F); auto *TTI = &AM.getResult(F); @@ -13215,20 +13160,3 @@ } 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/VectorCombine.cpp b/llvm/lib/Transforms/Vectorize/VectorCombine.cpp --- a/llvm/lib/Transforms/Vectorize/VectorCombine.cpp +++ b/llvm/lib/Transforms/Vectorize/VectorCombine.cpp @@ -25,11 +25,8 @@ #include "llvm/IR/Function.h" #include "llvm/IR/IRBuilder.h" #include "llvm/IR/PatternMatch.h" -#include "llvm/InitializePasses.h" -#include "llvm/Pass.h" #include "llvm/Support/CommandLine.h" #include "llvm/Transforms/Utils/Local.h" -#include "llvm/Transforms/Vectorize.h" #include #define DEBUG_TYPE "vector-combine" @@ -1799,53 +1796,6 @@ } // Pass manager boilerplate below here. - -namespace { -class VectorCombineLegacyPass : public FunctionPass { -public: - static char ID; - VectorCombineLegacyPass() : FunctionPass(ID) { - initializeVectorCombineLegacyPassPass(*PassRegistry::getPassRegistry()); - } - - void getAnalysisUsage(AnalysisUsage &AU) const override { - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - AU.addRequired(); - AU.setPreservesCFG(); - AU.addPreserved(); - AU.addPreserved(); - AU.addPreserved(); - AU.addPreserved(); - FunctionPass::getAnalysisUsage(AU); - } - - bool runOnFunction(Function &F) override { - if (skipFunction(F)) - return false; - auto &AC = getAnalysis().getAssumptionCache(F); - auto &TTI = getAnalysis().getTTI(F); - auto &DT = getAnalysis().getDomTree(); - auto &AA = getAnalysis().getAAResults(); - VectorCombine Combiner(F, TTI, DT, AA, AC, false); - return Combiner.run(); - } -}; -} // namespace - -char VectorCombineLegacyPass::ID = 0; -INITIALIZE_PASS_BEGIN(VectorCombineLegacyPass, "vector-combine", - "Optimize scalar/vector ops", false, - false) -INITIALIZE_PASS_DEPENDENCY(AssumptionCacheTracker) -INITIALIZE_PASS_DEPENDENCY(DominatorTreeWrapperPass) -INITIALIZE_PASS_END(VectorCombineLegacyPass, "vector-combine", - "Optimize scalar/vector ops", false, false) -Pass *llvm::createVectorCombinePass() { - return new VectorCombineLegacyPass(); -} - PreservedAnalyses VectorCombinePass::run(Function &F, FunctionAnalysisManager &FAM) { auto &AC = FAM.getResult(F); diff --git a/llvm/lib/Transforms/Vectorize/Vectorize.cpp b/llvm/lib/Transforms/Vectorize/Vectorize.cpp deleted file mode 100644 --- a/llvm/lib/Transforms/Vectorize/Vectorize.cpp +++ /dev/null @@ -1,42 +0,0 @@ -//===-- Vectorize.cpp -----------------------------------------------------===// -// -// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. -// See https://llvm.org/LICENSE.txt for license information. -// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception -// -//===----------------------------------------------------------------------===// -// -// This file implements common infrastructure for libLLVMVectorizeOpts.a, which -// implements several vectorization transformations over the LLVM intermediate -// representation, including the C bindings for that library. -// -//===----------------------------------------------------------------------===// - -#include "llvm/Transforms/Vectorize.h" -#include "llvm-c/Initialization.h" -#include "llvm-c/Transforms/Vectorize.h" -#include "llvm/IR/LegacyPassManager.h" -#include "llvm/InitializePasses.h" -#include "llvm/PassRegistry.h" - -using namespace llvm; - -/// Initialize all passes linked into the Vectorization library. -void llvm::initializeVectorization(PassRegistry &Registry) { - initializeLoopVectorizePass(Registry); - initializeSLPVectorizerPass(Registry); - initializeLoadStoreVectorizerLegacyPassPass(Registry); - initializeVectorCombineLegacyPassPass(Registry); -} - -void LLVMInitializeVectorization(LLVMPassRegistryRef R) { - initializeVectorization(*unwrap(R)); -} - -void LLVMAddLoopVectorizePass(LLVMPassManagerRef PM) { - unwrap(PM)->add(createLoopVectorizePass()); -} - -void LLVMAddSLPVectorizePass(LLVMPassManagerRef PM) { - unwrap(PM)->add(createSLPVectorizerPass()); -} diff --git a/llvm/tools/bugpoint/bugpoint.cpp b/llvm/tools/bugpoint/bugpoint.cpp --- a/llvm/tools/bugpoint/bugpoint.cpp +++ b/llvm/tools/bugpoint/bugpoint.cpp @@ -143,7 +143,6 @@ PassRegistry &Registry = *PassRegistry::getPassRegistry(); initializeCore(Registry); initializeScalarOpts(Registry); - initializeVectorization(Registry); initializeIPO(Registry); initializeAnalysis(Registry); initializeTransformUtils(Registry); diff --git a/llvm/tools/llc/llc.cpp b/llvm/tools/llc/llc.cpp --- a/llvm/tools/llc/llc.cpp +++ b/llvm/tools/llc/llc.cpp @@ -361,7 +361,6 @@ initializeUnreachableBlockElimLegacyPassPass(*Registry); initializeConstantHoistingLegacyPassPass(*Registry); initializeScalarOpts(*Registry); - initializeVectorization(*Registry); initializeScalarizeMaskedMemIntrinLegacyPassPass(*Registry); initializeExpandReductionsPass(*Registry); initializeExpandVectorPredicationPass(*Registry); diff --git a/llvm/tools/llvm-opt-fuzzer/llvm-opt-fuzzer.cpp b/llvm/tools/llvm-opt-fuzzer/llvm-opt-fuzzer.cpp --- a/llvm/tools/llvm-opt-fuzzer/llvm-opt-fuzzer.cpp +++ b/llvm/tools/llvm-opt-fuzzer/llvm-opt-fuzzer.cpp @@ -192,7 +192,6 @@ PassRegistry &Registry = *PassRegistry::getPassRegistry(); initializeCore(Registry); initializeScalarOpts(Registry); - initializeVectorization(Registry); initializeIPO(Registry); initializeAnalysis(Registry); initializeTransformUtils(Registry); diff --git a/llvm/tools/opt/opt.cpp b/llvm/tools/opt/opt.cpp --- a/llvm/tools/opt/opt.cpp +++ b/llvm/tools/opt/opt.cpp @@ -460,7 +460,6 @@ PassRegistry &Registry = *PassRegistry::getPassRegistry(); initializeCore(Registry); initializeScalarOpts(Registry); - initializeVectorization(Registry); initializeIPO(Registry); initializeAnalysis(Registry); initializeTransformUtils(Registry); diff --git a/llvm/utils/gn/secondary/llvm/lib/Transforms/Vectorize/BUILD.gn b/llvm/utils/gn/secondary/llvm/lib/Transforms/Vectorize/BUILD.gn --- a/llvm/utils/gn/secondary/llvm/lib/Transforms/Vectorize/BUILD.gn +++ b/llvm/utils/gn/secondary/llvm/lib/Transforms/Vectorize/BUILD.gn @@ -18,6 +18,5 @@ "VPlanTransforms.cpp", "VPlanVerifier.cpp", "VectorCombine.cpp", - "Vectorize.cpp", ] }