diff --git a/llvm/bindings/ocaml/transforms/ipo/ipo_ocaml.c b/llvm/bindings/ocaml/transforms/ipo/ipo_ocaml.c index 35d296f54e855f..d93028a05aad7d 100644 --- a/llvm/bindings/ocaml/transforms/ipo/ipo_ocaml.c +++ b/llvm/bindings/ocaml/transforms/ipo/ipo_ocaml.c @@ -67,20 +67,3 @@ value llvm_add_ipsccp(LLVMPassManagerRef PM) { return Val_unit; } -/* [`Module] Llvm.PassManager.t -> all_but_main:bool -> unit */ -value llvm_add_internalize(LLVMPassManagerRef PM, value AllButMain) { - LLVMAddInternalizePass(PM, Bool_val(AllButMain)); - return Val_unit; -} - -/* [`Module] Llvm.PassManager.t -> unit */ -value llvm_add_strip_dead_prototypes(LLVMPassManagerRef PM) { - LLVMAddStripDeadPrototypesPass(PM); - return Val_unit; -} - -/* [`Module] Llvm.PassManager.t -> unit */ -value llvm_add_strip_symbols(LLVMPassManagerRef PM) { - LLVMAddStripSymbolsPass(PM); - return Val_unit; -} diff --git a/llvm/bindings/ocaml/transforms/ipo/llvm_ipo.ml b/llvm/bindings/ocaml/transforms/ipo/llvm_ipo.ml index 7bbebe459bb778..553d55cd6ff540 100644 --- a/llvm/bindings/ocaml/transforms/ipo/llvm_ipo.ml +++ b/llvm/bindings/ocaml/transforms/ipo/llvm_ipo.ml @@ -30,12 +30,3 @@ external add_global_optimizer external add_ipsccp : [ `Module ] Llvm.PassManager.t -> unit = "llvm_add_ipsccp" -external add_internalize - : [ `Module ] Llvm.PassManager.t -> all_but_main:bool -> unit - = "llvm_add_internalize" -external add_strip_dead_prototypes - : [ `Module ] Llvm.PassManager.t -> unit - = "llvm_add_strip_dead_prototypes" -external add_strip_symbols - : [ `Module ] Llvm.PassManager.t -> unit - = "llvm_add_strip_symbols" diff --git a/llvm/bindings/ocaml/transforms/ipo/llvm_ipo.mli b/llvm/bindings/ocaml/transforms/ipo/llvm_ipo.mli index c37ab2e8266f41..7177a30770f610 100644 --- a/llvm/bindings/ocaml/transforms/ipo/llvm_ipo.mli +++ b/llvm/bindings/ocaml/transforms/ipo/llvm_ipo.mli @@ -50,18 +50,3 @@ external add_global_optimizer external add_ipsccp : [ `Module ] Llvm.PassManager.t -> unit = "llvm_add_ipsccp" - -(** See the [llvm::createInternalizePass] function. *) -external add_internalize - : [ `Module ] Llvm.PassManager.t -> all_but_main:bool -> unit - = "llvm_add_internalize" - -(** See the [llvm::createStripDeadPrototypesPass] function. *) -external add_strip_dead_prototypes - : [ `Module ] Llvm.PassManager.t -> unit - = "llvm_add_strip_dead_prototypes" - -(** See the [llvm::createStripSymbolsPass] function. *) -external add_strip_symbols - : [ `Module ] Llvm.PassManager.t -> unit - = "llvm_add_strip_symbols" diff --git a/llvm/include/llvm-c/Transforms/IPO.h b/llvm/include/llvm-c/Transforms/IPO.h index 429673bf8c2ea6..1e280822eb7236 100644 --- a/llvm/include/llvm-c/Transforms/IPO.h +++ b/llvm/include/llvm-c/Transforms/IPO.h @@ -51,30 +51,6 @@ void LLVMAddGlobalOptimizerPass(LLVMPassManagerRef PM); /** See llvm::createIPSCCPPass function. */ void LLVMAddIPSCCPPass(LLVMPassManagerRef PM); -/** See llvm::createInternalizePass function. */ -void LLVMAddInternalizePass(LLVMPassManagerRef, unsigned AllButMain); - -/** - * Create and add the internalize pass to the given pass manager with the - * provided preservation callback. - * - * The context parameter is forwarded to the callback on each invocation. - * As such, it is the responsibility of the caller to extend its lifetime - * until execution of this pass has finished. - * - * @see llvm::createInternalizePass function. - */ -void LLVMAddInternalizePassWithMustPreservePredicate( - LLVMPassManagerRef PM, - void *Context, - LLVMBool (*MustPreserve)(LLVMValueRef, void *)); - -/** See llvm::createStripDeadPrototypesPass function. */ -void LLVMAddStripDeadPrototypesPass(LLVMPassManagerRef PM); - -/** See llvm::createStripSymbolsPass function. */ -void LLVMAddStripSymbolsPass(LLVMPassManagerRef PM); - /** * @} */ diff --git a/llvm/include/llvm/InitializePasses.h b/llvm/include/llvm/InitializePasses.h index 16a8dd7aaefb01..f2500157dcec25 100644 --- a/llvm/include/llvm/InitializePasses.h +++ b/llvm/include/llvm/InitializePasses.h @@ -175,7 +175,6 @@ void initializeInstructionCombiningPassPass(PassRegistry&); void initializeInstructionSelectPass(PassRegistry&); void initializeInterleavedAccessPass(PassRegistry&); void initializeInterleavedLoadCombinePass(PassRegistry &); -void initializeInternalizeLegacyPassPass(PassRegistry&); void initializeIntervalPartitionPass(PassRegistry&); void initializeJMCInstrumenterPass(PassRegistry&); void initializeJumpThreadingPass(PassRegistry&); @@ -380,12 +379,8 @@ void initializeStackSafetyGlobalInfoWrapperPassPass(PassRegistry &); void initializeStackSafetyInfoWrapperPassPass(PassRegistry &); void initializeStackSlotColoringPass(PassRegistry&); void initializeStraightLineStrengthReduceLegacyPassPass(PassRegistry &); -void initializeStripDeadDebugInfoPass(PassRegistry&); -void initializeStripDeadPrototypesLegacyPassPass(PassRegistry&); -void initializeStripDebugDeclarePass(PassRegistry&); void initializeStripDebugMachineModulePass(PassRegistry &); void initializeStripGCRelocatesLegacyPass(PassRegistry &); -void initializeStripNonDebugSymbolsPass(PassRegistry&); void initializeStripNonLineTableDebugLegacyPassPass(PassRegistry &); void initializeStripSymbolsPass(PassRegistry&); void initializeStructurizeCFGLegacyPassPass(PassRegistry &); @@ -404,11 +399,9 @@ void initializeUnifyLoopExitsLegacyPassPass(PassRegistry &); void initializeUnpackMachineBundlesPass(PassRegistry&); void initializeUnreachableBlockElimLegacyPassPass(PassRegistry&); void initializeUnreachableMachineBlockElimPass(PassRegistry&); -void initializeVectorCombineLegacyPassPass(PassRegistry&); void initializeVerifierLegacyPassPass(PassRegistry&); void initializeVirtRegMapPass(PassRegistry&); void initializeVirtRegRewriterPass(PassRegistry&); -void initializeWarnMissedTransformationsLegacyPass(PassRegistry &); void initializeWasmEHPreparePass(PassRegistry&); void initializeWinEHPreparePass(PassRegistry&); void initializeWriteBitcodePassPass(PassRegistry&); diff --git a/llvm/include/llvm/LinkAllPasses.h b/llvm/include/llvm/LinkAllPasses.h index 6313e799e5d207..673b8496134ff8 100644 --- a/llvm/include/llvm/LinkAllPasses.h +++ b/llvm/include/llvm/LinkAllPasses.h @@ -104,7 +104,6 @@ namespace { (void) llvm::createIndVarSimplifyPass(); (void) llvm::createInstSimplifyLegacyPass(); (void) llvm::createInstructionCombiningPass(); - (void) llvm::createInternalizePass(); (void) llvm::createJMCInstrumenterPass(); (void) llvm::createLCSSAPass(); (void) llvm::createLegacyDivergenceAnalysisPass(); @@ -148,10 +147,6 @@ namespace { (void) llvm::createSafeStackPass(); (void) llvm::createSROAPass(); (void) llvm::createSingleLoopExtractorPass(); - (void) llvm::createStripSymbolsPass(); - (void) llvm::createStripNonDebugSymbolsPass(); - (void) llvm::createStripDeadDebugInfoPass(); - (void) llvm::createStripDeadPrototypesPass(); (void) llvm::createTailCallEliminationPass(); (void)llvm::createTLSVariableHoistPass(); (void) llvm::createJumpThreadingPass(); @@ -191,7 +186,6 @@ namespace { (void) llvm::createLoopVectorizePass(); (void) llvm::createSLPVectorizerPass(); (void) llvm::createLoadStoreVectorizerPass(); - (void) llvm::createVectorCombinePass(); (void) llvm::createPartiallyInlineLibCallsPass(); (void) llvm::createScalarizerPass(); (void) llvm::createSeparateConstOffsetFromGEPPass(); @@ -205,7 +199,6 @@ namespace { (void) llvm::createFloat2IntPass(); (void) llvm::createEliminateAvailableExternallyPass(); (void)llvm::createScalarizeMaskedMemIntrinLegacyPass(); - (void) llvm::createWarnMissedTransformationsPass(); (void) llvm::createHardwareLoopsPass(); (void) llvm::createInjectTLIMappingsLegacyPass(); (void) llvm::createUnifyLoopExitsPass(); diff --git a/llvm/include/llvm/Transforms/IPO.h b/llvm/include/llvm/Transforms/IPO.h index 6c0c026aa60dae..32f4f71362c3ce 100644 --- a/llvm/include/llvm/Transforms/IPO.h +++ b/llvm/include/llvm/Transforms/IPO.h @@ -34,30 +34,6 @@ class raw_ostream; // ModulePass *createAnnotation2MetadataLegacyPass(); -//===----------------------------------------------------------------------===// -// -// These functions removes symbols from functions and modules. If OnlyDebugInfo -// is true, only debugging information is removed from the module. -// -ModulePass *createStripSymbolsPass(bool OnlyDebugInfo = false); - -//===----------------------------------------------------------------------===// -// -// These functions strips symbols from functions and modules. -// Only debugging information is not stripped. -// -ModulePass *createStripNonDebugSymbolsPass(); - -//===----------------------------------------------------------------------===// -// -// This pass removes llvm.dbg.declare intrinsics. -ModulePass *createStripDebugDeclarePass(); - -//===----------------------------------------------------------------------===// -// -// This pass removes unused symbols' debug info. -ModulePass *createStripDeadDebugInfoPass(); - //===----------------------------------------------------------------------===// /// createConstantMergePass - This function returns a new pass that merges /// duplicate global constants together into a single constant that is shared. @@ -110,24 +86,6 @@ Pass *createFunctionInliningPass(unsigned OptLevel, unsigned SizeOptLevel, bool DisableInlineHotCallSite); Pass *createFunctionInliningPass(InlineParams &Params); -//===----------------------------------------------------------------------===// -/// createInternalizePass - This pass loops over all of the functions in the -/// input module, internalizing all globals (functions and variables) it can. -//// -/// Before internalizing a symbol, the callback \p MustPreserveGV is invoked and -/// gives to the client the ability to prevent internalizing specific symbols. -/// -/// The symbol in DSOList are internalized if it is safe to drop them from -/// the symbol table. -/// -/// Note that commandline options that are used with the above function are not -/// used now! -ModulePass * -createInternalizePass(std::function MustPreserveGV); - -/// createInternalizePass - Same as above, but with an empty exportList. -ModulePass *createInternalizePass(); - //===----------------------------------------------------------------------===// /// createDeadArgEliminationPass - This pass removes arguments from functions /// which are not used by the body of the function. @@ -158,10 +116,6 @@ Pass *createLoopExtractorPass(); /// Pass *createSingleLoopExtractorPass(); -/// createStripDeadPrototypesPass - This pass removes any function declarations -/// (prototypes) that are not used. -ModulePass *createStripDeadPrototypesPass(); - //===----------------------------------------------------------------------===// /// createReversePostOrderFunctionAttrsPass - This pass walks SCCs of the call /// graph in RPO to deduce and propagate function attributes. Currently it diff --git a/llvm/include/llvm/Transforms/Scalar.h b/llvm/include/llvm/Transforms/Scalar.h index 3db3e41d241a0e..8fbe1429311429 100644 --- a/llvm/include/llvm/Transforms/Scalar.h +++ b/llvm/include/llvm/Transforms/Scalar.h @@ -522,13 +522,6 @@ FunctionPass *createLibCallsShrinkWrapPass(); // Pass *createLoopSimplifyCFGPass(); -//===----------------------------------------------------------------------===// -// -// WarnMissedTransformations - This pass emits warnings for leftover forced -// transformations. -// -Pass *createWarnMissedTransformationsPass(); - //===----------------------------------------------------------------------===// // // This pass does instruction simplification on each diff --git a/llvm/include/llvm/Transforms/Scalar/WarnMissedTransforms.h b/llvm/include/llvm/Transforms/Scalar/WarnMissedTransforms.h index 80d098a1ea52a0..8f8cad0aab6de3 100644 --- a/llvm/include/llvm/Transforms/Scalar/WarnMissedTransforms.h +++ b/llvm/include/llvm/Transforms/Scalar/WarnMissedTransforms.h @@ -16,10 +16,6 @@ #include "llvm/IR/PassManager.h" namespace llvm { -class Function; -class Pass; -class PassRegistry; - // New pass manager boilerplate. class WarnMissedTransformationsPass : public PassInfoMixin { @@ -28,10 +24,6 @@ class WarnMissedTransformationsPass PreservedAnalyses run(Function &F, FunctionAnalysisManager &AM); }; - -// Legacy pass manager boilerplate. -Pass *createWarnMissedTransformationsPass(); -void initializeWarnMissedTransformationsLegacyPass(PassRegistry &); } // end namespace llvm #endif // LLVM_TRANSFORMS_SCALAR_WARNMISSEDTRANSFORMS_H diff --git a/llvm/include/llvm/Transforms/Utils.h b/llvm/include/llvm/Transforms/Utils.h index 5abfb2cceb584c..beb03d904190ea 100644 --- a/llvm/include/llvm/Transforms/Utils.h +++ b/llvm/include/llvm/Transforms/Utils.h @@ -100,10 +100,6 @@ FunctionPass *createPromoteMemoryToRegisterPass(); Pass *createLoopSimplifyPass(); extern char &LoopSimplifyID; -/// This function returns a new pass that downgrades the debug info in the -/// module to line tables only. -ModulePass *createStripNonLineTableDebugLegacyPass(); - //===----------------------------------------------------------------------===// // // InjectTLIMappingsLegacy - populates the VFABI attribute with the diff --git a/llvm/include/llvm/Transforms/Vectorize.h b/llvm/include/llvm/Transforms/Vectorize.h index bc7514267778c4..bca78d07300338 100644 --- a/llvm/include/llvm/Transforms/Vectorize.h +++ b/llvm/include/llvm/Transforms/Vectorize.h @@ -138,12 +138,6 @@ bool vectorizeBasicBlock(Pass *P, BasicBlock &BB, // Pass *createLoadStoreVectorizerPass(); -//===----------------------------------------------------------------------===// -// -// Optimize partial vector operations using target cost models. -// -Pass *createVectorCombinePass(); - } // End llvm namespace #endif diff --git a/llvm/lib/Transforms/IPO/IPO.cpp b/llvm/lib/Transforms/IPO/IPO.cpp index 26983d518820bc..d2e207159b0c88 100644 --- a/llvm/lib/Transforms/IPO/IPO.cpp +++ b/llvm/lib/Transforms/IPO/IPO.cpp @@ -35,7 +35,6 @@ void llvm::initializeIPO(PassRegistry &Registry) { initializeAlwaysInlinerLegacyPassPass(Registry); initializeSimpleInlinerPass(Registry); initializeInferFunctionAttrsLegacyPassPass(Registry); - initializeInternalizeLegacyPassPass(Registry); initializeLoopExtractorLegacyPassPass(Registry); initializeSingleLoopExtractorPass(Registry); initializeAttributorLegacyPassPass(Registry); @@ -43,11 +42,6 @@ void llvm::initializeIPO(PassRegistry &Registry) { initializePostOrderFunctionAttrsLegacyPassPass(Registry); initializeReversePostOrderFunctionAttrsLegacyPassPass(Registry); initializeIPSCCPLegacyPassPass(Registry); - initializeStripDeadPrototypesLegacyPassPass(Registry); - initializeStripSymbolsPass(Registry); - initializeStripDebugDeclarePass(Registry); - initializeStripDeadDebugInfoPass(Registry); - initializeStripNonDebugSymbolsPass(Registry); initializeBarrierNoopPass(Registry); initializeEliminateAvailableExternallyLegacyPassPass(Registry); } @@ -87,27 +81,3 @@ void LLVMAddGlobalOptimizerPass(LLVMPassManagerRef PM) { void LLVMAddIPSCCPPass(LLVMPassManagerRef PM) { unwrap(PM)->add(createIPSCCPPass()); } - -void LLVMAddInternalizePass(LLVMPassManagerRef PM, unsigned AllButMain) { - auto PreserveMain = [=](const GlobalValue &GV) { - return AllButMain && GV.getName() == "main"; - }; - unwrap(PM)->add(createInternalizePass(PreserveMain)); -} - -void LLVMAddInternalizePassWithMustPreservePredicate( - LLVMPassManagerRef PM, - void *Context, - LLVMBool (*Pred)(LLVMValueRef, void *)) { - unwrap(PM)->add(createInternalizePass([=](const GlobalValue &GV) { - return Pred(wrap(&GV), Context) == 0 ? false : true; - })); -} - -void LLVMAddStripDeadPrototypesPass(LLVMPassManagerRef PM) { - unwrap(PM)->add(createStripDeadPrototypesPass()); -} - -void LLVMAddStripSymbolsPass(LLVMPassManagerRef PM) { - unwrap(PM)->add(createStripSymbolsPass()); -} diff --git a/llvm/lib/Transforms/IPO/Internalize.cpp b/llvm/lib/Transforms/IPO/Internalize.cpp index 60c318d2f406cf..5982b8eafee81c 100644 --- a/llvm/lib/Transforms/IPO/Internalize.cpp +++ b/llvm/lib/Transforms/IPO/Internalize.cpp @@ -284,48 +284,3 @@ PreservedAnalyses InternalizePass::run(Module &M, ModuleAnalysisManager &AM) { PA.preserve(); return PA; } - -namespace { -class InternalizeLegacyPass : public ModulePass { - // Client supplied callback to control wheter a symbol must be preserved. - std::function MustPreserveGV; - -public: - static char ID; // Pass identification, replacement for typeid - - InternalizeLegacyPass() : ModulePass(ID), MustPreserveGV(PreserveAPIList()) {} - - InternalizeLegacyPass(std::function MustPreserveGV) - : ModulePass(ID), MustPreserveGV(std::move(MustPreserveGV)) { - initializeInternalizeLegacyPassPass(*PassRegistry::getPassRegistry()); - } - - bool runOnModule(Module &M) override { - if (skipModule(M)) - return false; - - CallGraphWrapperPass *CGPass = - getAnalysisIfAvailable(); - CallGraph *CG = CGPass ? &CGPass->getCallGraph() : nullptr; - return internalizeModule(M, MustPreserveGV, CG); - } - - void getAnalysisUsage(AnalysisUsage &AU) const override { - AU.setPreservesCFG(); - AU.addPreserved(); - } -}; -} - -char InternalizeLegacyPass::ID = 0; -INITIALIZE_PASS(InternalizeLegacyPass, "internalize", - "Internalize Global Symbols", false, false) - -ModulePass *llvm::createInternalizePass() { - return new InternalizeLegacyPass(); -} - -ModulePass *llvm::createInternalizePass( - std::function MustPreserveGV) { - return new InternalizeLegacyPass(std::move(MustPreserveGV)); -} diff --git a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp index 0f9ab6080fd385..0b58c3deba14b5 100644 --- a/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp +++ b/llvm/lib/Transforms/IPO/PassManagerBuilder.cpp @@ -214,7 +214,6 @@ void PassManagerBuilder::addVectorPasses(legacy::PassManagerBase &PM, // across the loop nests. PM.add(createLoopUnrollPass(OptLevel, DisableUnrollLoops, ForgetAllSCEVInLoopUnroll)); - PM.add(createWarnMissedTransformationsPass()); } if (!IsFullLTO) { @@ -253,9 +252,6 @@ void PassManagerBuilder::addVectorPasses(legacy::PassManagerBase &PM, PM.add(createSLPVectorizerPass()); } - // Enhance/cleanup vector code. - PM.add(createVectorCombinePass()); - if (!IsFullLTO) { PM.add(createInstructionCombiningPass()); @@ -274,8 +270,6 @@ void PassManagerBuilder::addVectorPasses(legacy::PassManagerBase &PM, PM.add(createLICMPass(LicmMssaOptCap, LicmMssaNoAccForPromotionCap, /*AllowSpeculation=*/true)); } - - PM.add(createWarnMissedTransformationsPass()); } // After vectorization and unrolling, assume intrinsics may tell us more @@ -409,9 +403,6 @@ void PassManagerBuilder::populateModulePassManager( addVectorPasses(MPM, /* IsFullLTO */ false); - // FIXME: We shouldn't bother with this anymore. - MPM.add(createStripDeadPrototypesPass()); // Get rid of dead prototypes - // 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) { diff --git a/llvm/lib/Transforms/IPO/StripDeadPrototypes.cpp b/llvm/lib/Transforms/IPO/StripDeadPrototypes.cpp index 0f2412dce1c9f1..bfe59227d7c3fb 100644 --- a/llvm/lib/Transforms/IPO/StripDeadPrototypes.cpp +++ b/llvm/lib/Transforms/IPO/StripDeadPrototypes.cpp @@ -56,30 +56,3 @@ PreservedAnalyses StripDeadPrototypesPass::run(Module &M, return PreservedAnalyses::none(); return PreservedAnalyses::all(); } - -namespace { - -class StripDeadPrototypesLegacyPass : public ModulePass { -public: - static char ID; // Pass identification, replacement for typeid - StripDeadPrototypesLegacyPass() : ModulePass(ID) { - initializeStripDeadPrototypesLegacyPassPass( - *PassRegistry::getPassRegistry()); - } - bool runOnModule(Module &M) override { - if (skipModule(M)) - return false; - - return stripDeadPrototypes(M); - } -}; - -} // end anonymous namespace - -char StripDeadPrototypesLegacyPass::ID = 0; -INITIALIZE_PASS(StripDeadPrototypesLegacyPass, "strip-dead-prototypes", - "Strip Unused Function Prototypes", false, false) - -ModulePass *llvm::createStripDeadPrototypesPass() { - return new StripDeadPrototypesLegacyPass(); -} diff --git a/llvm/lib/Transforms/IPO/StripSymbols.cpp b/llvm/lib/Transforms/IPO/StripSymbols.cpp index 34f8c4316cca29..d4934317a935c3 100644 --- a/llvm/lib/Transforms/IPO/StripSymbols.cpp +++ b/llvm/lib/Transforms/IPO/StripSymbols.cpp @@ -38,102 +38,6 @@ using namespace llvm; -namespace { - class StripSymbols : public ModulePass { - bool OnlyDebugInfo; - public: - static char ID; // Pass identification, replacement for typeid - explicit StripSymbols(bool ODI = false) - : ModulePass(ID), OnlyDebugInfo(ODI) { - initializeStripSymbolsPass(*PassRegistry::getPassRegistry()); - } - - bool runOnModule(Module &M) override; - - void getAnalysisUsage(AnalysisUsage &AU) const override { - AU.setPreservesAll(); - } - }; - - class StripNonDebugSymbols : public ModulePass { - public: - static char ID; // Pass identification, replacement for typeid - explicit StripNonDebugSymbols() - : ModulePass(ID) { - initializeStripNonDebugSymbolsPass(*PassRegistry::getPassRegistry()); - } - - bool runOnModule(Module &M) override; - - void getAnalysisUsage(AnalysisUsage &AU) const override { - AU.setPreservesAll(); - } - }; - - class StripDebugDeclare : public ModulePass { - public: - static char ID; // Pass identification, replacement for typeid - explicit StripDebugDeclare() - : ModulePass(ID) { - initializeStripDebugDeclarePass(*PassRegistry::getPassRegistry()); - } - - bool runOnModule(Module &M) override; - - void getAnalysisUsage(AnalysisUsage &AU) const override { - AU.setPreservesAll(); - } - }; - - class StripDeadDebugInfo : public ModulePass { - public: - static char ID; // Pass identification, replacement for typeid - explicit StripDeadDebugInfo() - : ModulePass(ID) { - initializeStripDeadDebugInfoPass(*PassRegistry::getPassRegistry()); - } - - bool runOnModule(Module &M) override; - - void getAnalysisUsage(AnalysisUsage &AU) const override { - AU.setPreservesAll(); - } - }; -} - -char StripSymbols::ID = 0; -INITIALIZE_PASS(StripSymbols, "strip", - "Strip all symbols from a module", false, false) - -ModulePass *llvm::createStripSymbolsPass(bool OnlyDebugInfo) { - return new StripSymbols(OnlyDebugInfo); -} - -char StripNonDebugSymbols::ID = 0; -INITIALIZE_PASS(StripNonDebugSymbols, "strip-nondebug", - "Strip all symbols, except dbg symbols, from a module", - false, false) - -ModulePass *llvm::createStripNonDebugSymbolsPass() { - return new StripNonDebugSymbols(); -} - -char StripDebugDeclare::ID = 0; -INITIALIZE_PASS(StripDebugDeclare, "strip-debug-declare", - "Strip all llvm.dbg.declare intrinsics", false, false) - -ModulePass *llvm::createStripDebugDeclarePass() { - return new StripDebugDeclare(); -} - -char StripDeadDebugInfo::ID = 0; -INITIALIZE_PASS(StripDeadDebugInfo, "strip-dead-debug-info", - "Strip debug info for unused symbols", false, false) - -ModulePass *llvm::createStripDeadDebugInfoPass() { - return new StripDeadDebugInfo(); -} - /// OnlyUsedBy - Return true if V is only used by Usr. static bool OnlyUsedBy(Value *V, Value *Usr) { for (User *U : V->users()) @@ -234,24 +138,6 @@ static bool StripSymbolNames(Module &M, bool PreserveDbgInfo) { return true; } -bool StripSymbols::runOnModule(Module &M) { - if (skipModule(M)) - return false; - - bool Changed = false; - Changed |= StripDebugInfo(M); - if (!OnlyDebugInfo) - Changed |= StripSymbolNames(M, false); - return Changed; -} - -bool StripNonDebugSymbols::runOnModule(Module &M) { - if (skipModule(M)) - return false; - - return StripSymbolNames(M, true); -} - static bool stripDebugDeclareImpl(Module &M) { Function *Declare = M.getFunction("llvm.dbg.declare"); @@ -290,12 +176,6 @@ static bool stripDebugDeclareImpl(Module &M) { return true; } -bool StripDebugDeclare::runOnModule(Module &M) { - if (skipModule(M)) - return false; - return stripDebugDeclareImpl(M); -} - /// Collects compilation units referenced by functions or lexical scopes. /// Accepts any DIScope and uses recursive bottom-up approach to reach either /// DISubprogram or DILexicalBlockBase. @@ -424,19 +304,6 @@ static bool stripDeadDebugInfoImpl(Module &M) { return Changed; } -/// Remove any debug info for global variables/functions in the given module for -/// which said global variable/function no longer exists (i.e. is null). -/// -/// Debugging information is encoded in llvm IR using metadata. This is designed -/// such a way that debug info for symbols preserved even if symbols are -/// optimized away by the optimizer. This special pass removes debug info for -/// such symbols. -bool StripDeadDebugInfo::runOnModule(Module &M) { - if (skipModule(M)) - return false; - return stripDeadDebugInfoImpl(M); -} - PreservedAnalyses StripSymbolsPass::run(Module &M, ModuleAnalysisManager &AM) { StripDebugInfo(M); StripSymbolNames(M, false); diff --git a/llvm/lib/Transforms/Scalar/Scalar.cpp b/llvm/lib/Transforms/Scalar/Scalar.cpp index 8aee8d140a295b..e4a58b12653731 100644 --- a/llvm/lib/Transforms/Scalar/Scalar.cpp +++ b/llvm/lib/Transforms/Scalar/Scalar.cpp @@ -71,7 +71,6 @@ void llvm::initializeScalarOpts(PassRegistry &Registry) { initializeLoopRerollLegacyPassPass(Registry); initializeLoopUnrollPass(Registry); initializeLoopUnrollAndJamPass(Registry); - initializeWarnMissedTransformationsLegacyPass(Registry); initializeLoopVersioningLICMLegacyPassPass(Registry); initializeLoopIdiomRecognizeLegacyPassPass(Registry); initializeLowerAtomicLegacyPassPass(Registry); diff --git a/llvm/lib/Transforms/Scalar/WarnMissedTransforms.cpp b/llvm/lib/Transforms/Scalar/WarnMissedTransforms.cpp index 9e08954ef6433f..ce1707543cefa0 100644 --- a/llvm/lib/Transforms/Scalar/WarnMissedTransforms.cpp +++ b/llvm/lib/Transforms/Scalar/WarnMissedTransforms.cpp @@ -104,47 +104,3 @@ WarnMissedTransformationsPass::run(Function &F, FunctionAnalysisManager &AM) { return PreservedAnalyses::all(); } - -// Legacy pass manager boilerplate -namespace { -class WarnMissedTransformationsLegacy : public FunctionPass { -public: - static char ID; - - explicit WarnMissedTransformationsLegacy() : FunctionPass(ID) { - initializeWarnMissedTransformationsLegacyPass( - *PassRegistry::getPassRegistry()); - } - - bool runOnFunction(Function &F) override { - if (skipFunction(F)) - return false; - - auto &ORE = getAnalysis().getORE(); - auto &LI = getAnalysis().getLoopInfo(); - - warnAboutLeftoverTransformations(&F, &LI, &ORE); - return false; - } - - void getAnalysisUsage(AnalysisUsage &AU) const override { - AU.addRequired(); - AU.addRequired(); - - AU.setPreservesAll(); - } -}; -} // end anonymous namespace - -char WarnMissedTransformationsLegacy::ID = 0; - -INITIALIZE_PASS_BEGIN(WarnMissedTransformationsLegacy, "transform-warning", - "Warn about non-applied transformations", false, false) -INITIALIZE_PASS_DEPENDENCY(LoopInfoWrapperPass) -INITIALIZE_PASS_DEPENDENCY(OptimizationRemarkEmitterWrapperPass) -INITIALIZE_PASS_END(WarnMissedTransformationsLegacy, "transform-warning", - "Warn about non-applied transformations", false, false) - -Pass *llvm::createWarnMissedTransformationsPass() { - return new WarnMissedTransformationsLegacy(); -} diff --git a/llvm/lib/Transforms/Utils/StripNonLineTableDebugInfo.cpp b/llvm/lib/Transforms/Utils/StripNonLineTableDebugInfo.cpp index 10fda4df51ba3c..01aa6d15948f9a 100644 --- a/llvm/lib/Transforms/Utils/StripNonLineTableDebugInfo.cpp +++ b/llvm/lib/Transforms/Utils/StripNonLineTableDebugInfo.cpp @@ -11,38 +11,8 @@ #include "llvm/InitializePasses.h" #include "llvm/Pass.h" #include "llvm/Transforms/Utils.h" -using namespace llvm; - -namespace { - -/// This pass strips all debug info that is not related line tables. -/// The result will be the same as if the program where compiled with -/// -gline-tables-only. -struct StripNonLineTableDebugLegacyPass : public ModulePass { - static char ID; // Pass identification, replacement for typeid - StripNonLineTableDebugLegacyPass() : ModulePass(ID) { - initializeStripNonLineTableDebugLegacyPassPass( - *PassRegistry::getPassRegistry()); - } - void getAnalysisUsage(AnalysisUsage &AU) const override { - AU.setPreservesAll(); - } - - bool runOnModule(Module &M) override { - return llvm::stripNonLineTableDebugInfo(M); - } -}; -} - -char StripNonLineTableDebugLegacyPass::ID = 0; -INITIALIZE_PASS(StripNonLineTableDebugLegacyPass, - "strip-nonlinetable-debuginfo", - "Strip all debug info except linetables", false, false) - -ModulePass *llvm::createStripNonLineTableDebugLegacyPass() { - return new StripNonLineTableDebugLegacyPass(); -} +using namespace llvm; PreservedAnalyses StripNonLineTableDebugInfoPass::run(Module &M, ModuleAnalysisManager &AM) { diff --git a/llvm/lib/Transforms/Utils/Utils.cpp b/llvm/lib/Transforms/Utils/Utils.cpp index d002922cfd306e..a20dadb69767fe 100644 --- a/llvm/lib/Transforms/Utils/Utils.cpp +++ b/llvm/lib/Transforms/Utils/Utils.cpp @@ -37,7 +37,6 @@ void llvm::initializeTransformUtils(PassRegistry &Registry) { initializeLowerInvokeLegacyPassPass(Registry); initializeLowerSwitchLegacyPassPass(Registry); initializePromoteLegacyPassPass(Registry); - initializeStripNonLineTableDebugLegacyPassPass(Registry); initializeUnifyFunctionExitNodesLegacyPassPass(Registry); initializeMetaRenamerPass(Registry); initializeStripGCRelocatesLegacyPass(Registry); diff --git a/llvm/lib/Transforms/Vectorize/VectorCombine.cpp b/llvm/lib/Transforms/Vectorize/VectorCombine.cpp index 2e489757ebc184..6dc5f5fef0d2c6 100644 --- a/llvm/lib/Transforms/Vectorize/VectorCombine.cpp +++ b/llvm/lib/Transforms/Vectorize/VectorCombine.cpp @@ -1811,54 +1811,6 @@ bool VectorCombine::run() { return MadeChange; } -// 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 index 208e5eeea86413..c2060484af5d09 100644 --- a/llvm/lib/Transforms/Vectorize/Vectorize.cpp +++ b/llvm/lib/Transforms/Vectorize/Vectorize.cpp @@ -26,7 +26,6 @@ void llvm::initializeVectorization(PassRegistry &Registry) { initializeLoopVectorizePass(Registry); initializeSLPVectorizerPass(Registry); initializeLoadStoreVectorizerLegacyPassPass(Registry); - initializeVectorCombineLegacyPassPass(Registry); } void LLVMInitializeVectorization(LLVMPassRegistryRef R) { diff --git a/llvm/test/Bindings/OCaml/ipo.ml b/llvm/test/Bindings/OCaml/ipo.ml index aade5a43dc4fbe..8517660ace156a 100644 --- a/llvm/test/Bindings/OCaml/ipo.ml +++ b/llvm/test/Bindings/OCaml/ipo.ml @@ -55,9 +55,6 @@ let test_transforms () = ++ add_global_dce ++ add_global_optimizer ++ add_ipsccp - ++ add_internalize ~all_but_main:true - ++ add_strip_dead_prototypes - ++ add_strip_symbols ++ PassManager.run_module m ++ PassManager.dispose)