[all-commits] [llvm/llvm-project] 11729f: [PassManager] Make passes inherit from RequiredPas...

Arthur Eubanks via All-commits all-commits at lists.llvm.org
Wed May 6 10:00:29 PDT 2026


  Branch: refs/heads/main
  Home:   https://github.com/llvm/llvm-project
  Commit: 11729f768a053360cfaf61f903ed52a1fe930dea
      https://github.com/llvm/llvm-project/commit/11729f768a053360cfaf61f903ed52a1fe930dea
  Author: Arthur Eubanks <aeubanks at google.com>
  Date:   2026-05-06 (Wed, 06 May 2026)

  Changed paths:
    M clang/examples/LLVMPrintFunctionNames/LLVMPrintFunctionNames.cpp
    M clang/lib/CodeGen/LinkInModulesPass.h
    M llvm/docs/WritingAnLLVMNewPMPass.rst
    M llvm/examples/Bye/Bye.cpp
    M llvm/examples/IRTransforms/SimplifyCFG.cpp
    M llvm/include/llvm/Analysis/AliasAnalysisEvaluator.h
    M llvm/include/llvm/Analysis/AliasSetTracker.h
    M llvm/include/llvm/Analysis/AssumptionCache.h
    M llvm/include/llvm/Analysis/BlockFrequencyInfo.h
    M llvm/include/llvm/Analysis/BranchProbabilityInfo.h
    M llvm/include/llvm/Analysis/CFGPrinter.h
    M llvm/include/llvm/Analysis/CFGSCCPrinter.h
    M llvm/include/llvm/Analysis/CGSCCPassManager.h
    M llvm/include/llvm/Analysis/CallGraph.h
    M llvm/include/llvm/Analysis/CallPrinter.h
    M llvm/include/llvm/Analysis/CostModel.h
    M llvm/include/llvm/Analysis/CtxProfAnalysis.h
    M llvm/include/llvm/Analysis/CycleAnalysis.h
    M llvm/include/llvm/Analysis/DDG.h
    M llvm/include/llvm/Analysis/DDGPrinter.h
    M llvm/include/llvm/Analysis/DOTGraphTraitsPass.h
    M llvm/include/llvm/Analysis/DXILMetadataAnalysis.h
    M llvm/include/llvm/Analysis/DXILResource.h
    M llvm/include/llvm/Analysis/Delinearization.h
    M llvm/include/llvm/Analysis/DemandedBits.h
    M llvm/include/llvm/Analysis/DependenceAnalysis.h
    M llvm/include/llvm/Analysis/DominanceFrontier.h
    M llvm/include/llvm/Analysis/FunctionPropertiesAnalysis.h
    M llvm/include/llvm/Analysis/GlobalsModRef.h
    M llvm/include/llvm/Analysis/HashRecognize.h
    M llvm/include/llvm/Analysis/IR2Vec.h
    M llvm/include/llvm/Analysis/IRSimilarityIdentifier.h
    M llvm/include/llvm/Analysis/InlineAdvisor.h
    M llvm/include/llvm/Analysis/InlineCost.h
    M llvm/include/llvm/Analysis/InstCount.h
    M llvm/include/llvm/Analysis/KernelInfo.h
    M llvm/include/llvm/Analysis/LazyCallGraph.h
    M llvm/include/llvm/Analysis/LazyValueInfo.h
    M llvm/include/llvm/Analysis/Lint.h
    M llvm/include/llvm/Analysis/LoopCacheAnalysis.h
    M llvm/include/llvm/Analysis/LoopInfo.h
    M llvm/include/llvm/Analysis/LoopNestAnalysis.h
    M llvm/include/llvm/Analysis/MemDerefPrinter.h
    M llvm/include/llvm/Analysis/MemorySSA.h
    M llvm/include/llvm/Analysis/ModuleDebugInfoPrinter.h
    M llvm/include/llvm/Analysis/MustExecute.h
    M llvm/include/llvm/Analysis/PhiValues.h
    M llvm/include/llvm/Analysis/PostDominators.h
    M llvm/include/llvm/Analysis/ProfileSummaryInfo.h
    M llvm/include/llvm/Analysis/RegionInfo.h
    M llvm/include/llvm/Analysis/ScalarEvolution.h
    M llvm/include/llvm/Analysis/ScalarEvolutionDivision.h
    M llvm/include/llvm/Analysis/StackLifetime.h
    M llvm/include/llvm/Analysis/StackSafetyAnalysis.h
    M llvm/include/llvm/Analysis/StructuralHash.h
    M llvm/include/llvm/Analysis/UniformityAnalysis.h
    M llvm/include/llvm/Bitcode/BitcodeWriterPass.h
    M llvm/include/llvm/CodeGen/AssignmentTrackingAnalysis.h
    M llvm/include/llvm/CodeGen/AtomicExpand.h
    M llvm/include/llvm/CodeGen/BranchFoldingPass.h
    M llvm/include/llvm/CodeGen/BranchRelaxation.h
    M llvm/include/llvm/CodeGen/CodeGenPrepare.h
    M llvm/include/llvm/CodeGen/ComplexDeinterleavingPass.h
    M llvm/include/llvm/CodeGen/DeadMachineInstructionElim.h
    M llvm/include/llvm/CodeGen/DetectDeadLanes.h
    M llvm/include/llvm/CodeGen/DwarfEHPrepare.h
    M llvm/include/llvm/CodeGen/EarlyIfConversion.h
    M llvm/include/llvm/CodeGen/ExpandIRInsts.h
    M llvm/include/llvm/CodeGen/ExpandPostRAPseudos.h
    M llvm/include/llvm/CodeGen/ExpandReductions.h
    M llvm/include/llvm/CodeGen/FEntryInserter.h
    M llvm/include/llvm/CodeGen/FinalizeISel.h
    M llvm/include/llvm/CodeGen/FixupStatepointCallerSaved.h
    M llvm/include/llvm/CodeGen/GCEmptyBasicBlocks.h
    M llvm/include/llvm/CodeGen/GCMetadata.h
    M llvm/include/llvm/CodeGen/GlobalISel/GISelValueTracking.h
    M llvm/include/llvm/CodeGen/GlobalMerge.h
    M llvm/include/llvm/CodeGen/GlobalMergeFunctions.h
    M llvm/include/llvm/CodeGen/HardwareLoops.h
    M llvm/include/llvm/CodeGen/IndirectBrExpand.h
    M llvm/include/llvm/CodeGen/InitUndef.h
    M llvm/include/llvm/CodeGen/InlineAsmPrepare.h
    M llvm/include/llvm/CodeGen/InterleavedAccess.h
    M llvm/include/llvm/CodeGen/InterleavedLoadCombine.h
    M llvm/include/llvm/CodeGen/JMCInstrumenter.h
    M llvm/include/llvm/CodeGen/KCFI.h
    M llvm/include/llvm/CodeGen/LiveDebugValuesPass.h
    M llvm/include/llvm/CodeGen/LiveDebugVariables.h
    M llvm/include/llvm/CodeGen/LiveIntervals.h
    M llvm/include/llvm/CodeGen/LiveStacks.h
    M llvm/include/llvm/CodeGen/LiveVariables.h
    M llvm/include/llvm/CodeGen/LocalStackSlotAllocation.h
    M llvm/include/llvm/CodeGen/LowerEmuTLS.h
    M llvm/include/llvm/CodeGen/MIRPrinter.h
    M llvm/include/llvm/CodeGen/MachineBlockFrequencyInfo.h
    M llvm/include/llvm/CodeGen/MachineBlockHashInfo.h
    M llvm/include/llvm/CodeGen/MachineBlockPlacement.h
    M llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h
    M llvm/include/llvm/CodeGen/MachineCSE.h
    M llvm/include/llvm/CodeGen/MachineCopyPropagation.h
    M llvm/include/llvm/CodeGen/MachineCycleAnalysis.h
    M llvm/include/llvm/CodeGen/MachineDominators.h
    M llvm/include/llvm/CodeGen/MachineFunctionAnalysis.h
    M llvm/include/llvm/CodeGen/MachineInstrBundle.h
    M llvm/include/llvm/CodeGen/MachineLICM.h
    M llvm/include/llvm/CodeGen/MachineLateInstrsCleanup.h
    M llvm/include/llvm/CodeGen/MachineLoopInfo.h
    M llvm/include/llvm/CodeGen/MachinePassManager.h
    M llvm/include/llvm/CodeGen/MachinePostDominators.h
    M llvm/include/llvm/CodeGen/MachineScheduler.h
    M llvm/include/llvm/CodeGen/MachineSink.h
    M llvm/include/llvm/CodeGen/MachineStripDebug.h
    M llvm/include/llvm/CodeGen/MachineTraceMetrics.h
    M llvm/include/llvm/CodeGen/MachineUniformityAnalysis.h
    M llvm/include/llvm/CodeGen/MachineVerifier.h
    M llvm/include/llvm/CodeGen/OptimizePHIs.h
    M llvm/include/llvm/CodeGen/PEI.h
    M llvm/include/llvm/CodeGen/PHIElimination.h
    M llvm/include/llvm/CodeGen/PatchableFunction.h
    M llvm/include/llvm/CodeGen/PeepholeOptimizer.h
    M llvm/include/llvm/CodeGen/PostRAHazardRecognizer.h
    M llvm/include/llvm/CodeGen/PostRAMachineSink.h
    M llvm/include/llvm/CodeGen/PostRASchedulerList.h
    M llvm/include/llvm/CodeGen/PreISelIntrinsicLowering.h
    M llvm/include/llvm/CodeGen/ProcessImplicitDefs.h
    M llvm/include/llvm/CodeGen/ReachingDefAnalysis.h
    M llvm/include/llvm/CodeGen/RegAllocFast.h
    M llvm/include/llvm/CodeGen/RegAllocGreedyPass.h
    M llvm/include/llvm/CodeGen/RegUsageInfoPropagate.h
    M llvm/include/llvm/CodeGen/RegisterCoalescerPass.h
    M llvm/include/llvm/CodeGen/RegisterUsageInfo.h
    M llvm/include/llvm/CodeGen/RemoveLoadsIntoFakeUses.h
    M llvm/include/llvm/CodeGen/RemoveRedundantDebugValues.h
    M llvm/include/llvm/CodeGen/RenameIndependentSubregs.h
    M llvm/include/llvm/CodeGen/ReplaceWithVeclib.h
    M llvm/include/llvm/CodeGen/SafeStack.h
    M llvm/include/llvm/CodeGen/SanitizerBinaryMetadata.h
    M llvm/include/llvm/CodeGen/SelectOptimize.h
    M llvm/include/llvm/CodeGen/SelectionDAGISel.h
    M llvm/include/llvm/CodeGen/ShadowStackGCLowering.h
    M llvm/include/llvm/CodeGen/ShrinkWrap.h
    M llvm/include/llvm/CodeGen/SjLjEHPrepare.h
    M llvm/include/llvm/CodeGen/SlotIndexes.h
    M llvm/include/llvm/CodeGen/StackColoring.h
    M llvm/include/llvm/CodeGen/StackFrameLayoutAnalysisPass.h
    M llvm/include/llvm/CodeGen/StackProtector.h
    M llvm/include/llvm/CodeGen/StackSlotColoring.h
    M llvm/include/llvm/CodeGen/TailDuplication.h
    M llvm/include/llvm/CodeGen/TwoAddressInstructionPass.h
    M llvm/include/llvm/CodeGen/TypePromotion.h
    M llvm/include/llvm/CodeGen/UnreachableBlockElim.h
    M llvm/include/llvm/CodeGen/VirtRegMap.h
    M llvm/include/llvm/CodeGen/WasmEHPrepare.h
    M llvm/include/llvm/CodeGen/WinEHPrepare.h
    M llvm/include/llvm/CodeGen/XRayInstrumentation.h
    M llvm/include/llvm/IR/DebugInfo.h
    M llvm/include/llvm/IR/Dominators.h
    M llvm/include/llvm/IR/PassInstrumentation.h
    M llvm/include/llvm/IR/PassManager.h
    M llvm/include/llvm/IR/PassManagerInternal.h
    M llvm/include/llvm/IR/SafepointIRVerifier.h
    M llvm/include/llvm/IR/Verifier.h
    M llvm/include/llvm/IRPrinter/IRPrintingPasses.h
    M llvm/include/llvm/Passes/CodeGenPassBuilder.h
    M llvm/include/llvm/Passes/PassBuilder.h
    M llvm/include/llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h
    M llvm/include/llvm/Transforms/CFGuard.h
    M llvm/include/llvm/Transforms/Coroutines/CoroAnnotationElide.h
    M llvm/include/llvm/Transforms/Coroutines/CoroCleanup.h
    M llvm/include/llvm/Transforms/Coroutines/CoroConditionalWrapper.h
    M llvm/include/llvm/Transforms/Coroutines/CoroEarly.h
    M llvm/include/llvm/Transforms/Coroutines/CoroElide.h
    M llvm/include/llvm/Transforms/Coroutines/CoroSplit.h
    M llvm/include/llvm/Transforms/HipStdPar/HipStdPar.h
    M llvm/include/llvm/Transforms/IPO/AlwaysInliner.h
    M llvm/include/llvm/Transforms/IPO/Annotation2Metadata.h
    M llvm/include/llvm/Transforms/IPO/ArgumentPromotion.h
    M llvm/include/llvm/Transforms/IPO/Attributor.h
    M llvm/include/llvm/Transforms/IPO/BlockExtractor.h
    M llvm/include/llvm/Transforms/IPO/CalledValuePropagation.h
    M llvm/include/llvm/Transforms/IPO/ConstantMerge.h
    M llvm/include/llvm/Transforms/IPO/CrossDSOCFI.h
    M llvm/include/llvm/Transforms/IPO/DeadArgumentElimination.h
    M llvm/include/llvm/Transforms/IPO/ElimAvailExtern.h
    M llvm/include/llvm/Transforms/IPO/EmbedBitcodePass.h
    M llvm/include/llvm/Transforms/IPO/ExpandVariadics.h
    M llvm/include/llvm/Transforms/IPO/ExtractGV.h
    M llvm/include/llvm/Transforms/IPO/FatLTOCleanup.h
    M llvm/include/llvm/Transforms/IPO/ForceFunctionAttrs.h
    M llvm/include/llvm/Transforms/IPO/FunctionAttrs.h
    M llvm/include/llvm/Transforms/IPO/FunctionImport.h
    M llvm/include/llvm/Transforms/IPO/GlobalDCE.h
    M llvm/include/llvm/Transforms/IPO/GlobalOpt.h
    M llvm/include/llvm/Transforms/IPO/GlobalSplit.h
    M llvm/include/llvm/Transforms/IPO/HotColdSplitting.h
    M llvm/include/llvm/Transforms/IPO/IROutliner.h
    M llvm/include/llvm/Transforms/IPO/InferFunctionAttrs.h
    M llvm/include/llvm/Transforms/IPO/Inliner.h
    M llvm/include/llvm/Transforms/IPO/Internalize.h
    M llvm/include/llvm/Transforms/IPO/LoopExtractor.h
    M llvm/include/llvm/Transforms/IPO/LowerTypeTests.h
    M llvm/include/llvm/Transforms/IPO/MemProfContextDisambiguation.h
    M llvm/include/llvm/Transforms/IPO/MergeFunctions.h
    M llvm/include/llvm/Transforms/IPO/ModuleInliner.h
    M llvm/include/llvm/Transforms/IPO/OpenMPOpt.h
    M llvm/include/llvm/Transforms/IPO/PartialInlining.h
    M llvm/include/llvm/Transforms/IPO/SCCP.h
    M llvm/include/llvm/Transforms/IPO/SampleProfile.h
    M llvm/include/llvm/Transforms/IPO/SampleProfileProbe.h
    M llvm/include/llvm/Transforms/IPO/StripDeadPrototypes.h
    M llvm/include/llvm/Transforms/IPO/StripSymbols.h
    M llvm/include/llvm/Transforms/IPO/ThinLTOBitcodeWriter.h
    M llvm/include/llvm/Transforms/IPO/WholeProgramDevirt.h
    M llvm/include/llvm/Transforms/InstCombine/InstCombine.h
    M llvm/include/llvm/Transforms/Instrumentation/AddressSanitizer.h
    M llvm/include/llvm/Transforms/Instrumentation/AllocToken.h
    M llvm/include/llvm/Transforms/Instrumentation/BoundsChecking.h
    M llvm/include/llvm/Transforms/Instrumentation/CGProfile.h
    M llvm/include/llvm/Transforms/Instrumentation/ControlHeightReduction.h
    M llvm/include/llvm/Transforms/Instrumentation/DataFlowSanitizer.h
    M llvm/include/llvm/Transforms/Instrumentation/GCOVProfiler.h
    M llvm/include/llvm/Transforms/Instrumentation/HWAddressSanitizer.h
    M llvm/include/llvm/Transforms/Instrumentation/InstrProfiling.h
    M llvm/include/llvm/Transforms/Instrumentation/KCFI.h
    M llvm/include/llvm/Transforms/Instrumentation/LowerAllowCheckPass.h
    M llvm/include/llvm/Transforms/Instrumentation/MemProfInstrumentation.h
    M llvm/include/llvm/Transforms/Instrumentation/MemProfUse.h
    M llvm/include/llvm/Transforms/Instrumentation/MemorySanitizer.h
    M llvm/include/llvm/Transforms/Instrumentation/NumericalStabilitySanitizer.h
    M llvm/include/llvm/Transforms/Instrumentation/PGOCtxProfFlattening.h
    M llvm/include/llvm/Transforms/Instrumentation/PGOCtxProfLowering.h
    M llvm/include/llvm/Transforms/Instrumentation/PGOForceFunctionAttrs.h
    M llvm/include/llvm/Transforms/Instrumentation/PGOInstrumentation.h
    M llvm/include/llvm/Transforms/Instrumentation/RealtimeSanitizer.h
    M llvm/include/llvm/Transforms/Instrumentation/SanitizerBinaryMetadata.h
    M llvm/include/llvm/Transforms/Instrumentation/SanitizerCoverage.h
    M llvm/include/llvm/Transforms/Instrumentation/ThreadSanitizer.h
    M llvm/include/llvm/Transforms/Instrumentation/TypeSanitizer.h
    M llvm/include/llvm/Transforms/ObjCARC.h
    M llvm/include/llvm/Transforms/Scalar/ADCE.h
    M llvm/include/llvm/Transforms/Scalar/AlignmentFromAssumptions.h
    M llvm/include/llvm/Transforms/Scalar/AnnotationRemarks.h
    M llvm/include/llvm/Transforms/Scalar/BDCE.h
    M llvm/include/llvm/Transforms/Scalar/CallSiteSplitting.h
    M llvm/include/llvm/Transforms/Scalar/ConstantHoisting.h
    M llvm/include/llvm/Transforms/Scalar/ConstraintElimination.h
    M llvm/include/llvm/Transforms/Scalar/CorrelatedValuePropagation.h
    M llvm/include/llvm/Transforms/Scalar/DCE.h
    M llvm/include/llvm/Transforms/Scalar/DFAJumpThreading.h
    M llvm/include/llvm/Transforms/Scalar/DeadStoreElimination.h
    M llvm/include/llvm/Transforms/Scalar/DivRemPairs.h
    M llvm/include/llvm/Transforms/Scalar/DropUnnecessaryAssumes.h
    M llvm/include/llvm/Transforms/Scalar/EarlyCSE.h
    M llvm/include/llvm/Transforms/Scalar/ExpandMemCmp.h
    M llvm/include/llvm/Transforms/Scalar/FlattenCFG.h
    M llvm/include/llvm/Transforms/Scalar/Float2Int.h
    M llvm/include/llvm/Transforms/Scalar/GVN.h
    M llvm/include/llvm/Transforms/Scalar/GuardWidening.h
    M llvm/include/llvm/Transforms/Scalar/IVUsersPrinter.h
    M llvm/include/llvm/Transforms/Scalar/IndVarSimplify.h
    M llvm/include/llvm/Transforms/Scalar/InductiveRangeCheckElimination.h
    M llvm/include/llvm/Transforms/Scalar/InferAddressSpaces.h
    M llvm/include/llvm/Transforms/Scalar/InferAlignment.h
    M llvm/include/llvm/Transforms/Scalar/InstSimplifyPass.h
    M llvm/include/llvm/Transforms/Scalar/JumpTableToSwitch.h
    M llvm/include/llvm/Transforms/Scalar/JumpThreading.h
    M llvm/include/llvm/Transforms/Scalar/LICM.h
    M llvm/include/llvm/Transforms/Scalar/LoopAccessAnalysisPrinter.h
    M llvm/include/llvm/Transforms/Scalar/LoopBoundSplit.h
    M llvm/include/llvm/Transforms/Scalar/LoopDataPrefetch.h
    M llvm/include/llvm/Transforms/Scalar/LoopDeletion.h
    M llvm/include/llvm/Transforms/Scalar/LoopDistribute.h
    M llvm/include/llvm/Transforms/Scalar/LoopFlatten.h
    M llvm/include/llvm/Transforms/Scalar/LoopFuse.h
    M llvm/include/llvm/Transforms/Scalar/LoopIdiomRecognize.h
    M llvm/include/llvm/Transforms/Scalar/LoopInstSimplify.h
    M llvm/include/llvm/Transforms/Scalar/LoopInterchange.h
    M llvm/include/llvm/Transforms/Scalar/LoopLoadElimination.h
    M llvm/include/llvm/Transforms/Scalar/LoopPassManager.h
    M llvm/include/llvm/Transforms/Scalar/LoopPredication.h
    M llvm/include/llvm/Transforms/Scalar/LoopRotation.h
    M llvm/include/llvm/Transforms/Scalar/LoopSimplifyCFG.h
    M llvm/include/llvm/Transforms/Scalar/LoopSink.h
    M llvm/include/llvm/Transforms/Scalar/LoopStrengthReduce.h
    M llvm/include/llvm/Transforms/Scalar/LoopTermFold.h
    M llvm/include/llvm/Transforms/Scalar/LoopUnrollAndJamPass.h
    M llvm/include/llvm/Transforms/Scalar/LoopUnrollPass.h
    M llvm/include/llvm/Transforms/Scalar/LoopVersioningLICM.h
    M llvm/include/llvm/Transforms/Scalar/LowerAtomicPass.h
    M llvm/include/llvm/Transforms/Scalar/LowerConstantIntrinsics.h
    M llvm/include/llvm/Transforms/Scalar/LowerExpectIntrinsic.h
    M llvm/include/llvm/Transforms/Scalar/LowerGuardIntrinsic.h
    M llvm/include/llvm/Transforms/Scalar/LowerMatrixIntrinsics.h
    M llvm/include/llvm/Transforms/Scalar/LowerWidenableCondition.h
    M llvm/include/llvm/Transforms/Scalar/MakeGuardsExplicit.h
    M llvm/include/llvm/Transforms/Scalar/MemCpyOptimizer.h
    M llvm/include/llvm/Transforms/Scalar/MergeICmps.h
    M llvm/include/llvm/Transforms/Scalar/MergedLoadStoreMotion.h
    M llvm/include/llvm/Transforms/Scalar/NaryReassociate.h
    M llvm/include/llvm/Transforms/Scalar/NewGVN.h
    M llvm/include/llvm/Transforms/Scalar/PartiallyInlineLibCalls.h
    M llvm/include/llvm/Transforms/Scalar/PlaceSafepoints.h
    M llvm/include/llvm/Transforms/Scalar/Reassociate.h
    M llvm/include/llvm/Transforms/Scalar/Reg2Mem.h
    M llvm/include/llvm/Transforms/Scalar/RewriteStatepointsForGC.h
    M llvm/include/llvm/Transforms/Scalar/SCCP.h
    M llvm/include/llvm/Transforms/Scalar/SROA.h
    M llvm/include/llvm/Transforms/Scalar/ScalarizeMaskedMemIntrin.h
    M llvm/include/llvm/Transforms/Scalar/Scalarizer.h
    M llvm/include/llvm/Transforms/Scalar/SeparateConstOffsetFromGEP.h
    M llvm/include/llvm/Transforms/Scalar/SimpleLoopUnswitch.h
    M llvm/include/llvm/Transforms/Scalar/SimplifyCFG.h
    M llvm/include/llvm/Transforms/Scalar/Sink.h
    M llvm/include/llvm/Transforms/Scalar/SpeculativeExecution.h
    M llvm/include/llvm/Transforms/Scalar/StraightLineStrengthReduce.h
    M llvm/include/llvm/Transforms/Scalar/StructurizeCFG.h
    M llvm/include/llvm/Transforms/Scalar/TailRecursionElimination.h
    M llvm/include/llvm/Transforms/Scalar/WarnMissedTransforms.h
    M llvm/include/llvm/Transforms/Utils/AddDiscriminators.h
    M llvm/include/llvm/Transforms/Utils/AssumeBundleBuilder.h
    M llvm/include/llvm/Transforms/Utils/BreakCriticalEdges.h
    M llvm/include/llvm/Transforms/Utils/CanonicalizeAliases.h
    M llvm/include/llvm/Transforms/Utils/CanonicalizeFreezeInLoops.h
    M llvm/include/llvm/Transforms/Utils/CountVisits.h
    M llvm/include/llvm/Transforms/Utils/DXILUpgrade.h
    M llvm/include/llvm/Transforms/Utils/Debugify.h
    M llvm/include/llvm/Transforms/Utils/DeclareRuntimeLibcalls.h
    M llvm/include/llvm/Transforms/Utils/EntryExitInstrumenter.h
    M llvm/include/llvm/Transforms/Utils/ExtraPassManager.h
    M llvm/include/llvm/Transforms/Utils/FixIrreducible.h
    M llvm/include/llvm/Transforms/Utils/HelloWorld.h
    M llvm/include/llvm/Transforms/Utils/IRNormalizer.h
    M llvm/include/llvm/Transforms/Utils/InjectTLIMappings.h
    M llvm/include/llvm/Transforms/Utils/InstructionNamer.h
    M llvm/include/llvm/Transforms/Utils/LCSSA.h
    M llvm/include/llvm/Transforms/Utils/LibCallsShrinkWrap.h
    M llvm/include/llvm/Transforms/Utils/LoopSimplify.h
    M llvm/include/llvm/Transforms/Utils/LoopVersioning.h
    M llvm/include/llvm/Transforms/Utils/LowerGlobalDtors.h
    M llvm/include/llvm/Transforms/Utils/LowerIFunc.h
    M llvm/include/llvm/Transforms/Utils/LowerInvoke.h
    M llvm/include/llvm/Transforms/Utils/LowerSwitch.h
    M llvm/include/llvm/Transforms/Utils/Mem2Reg.h
    M llvm/include/llvm/Transforms/Utils/MetaRenamer.h
    M llvm/include/llvm/Transforms/Utils/MoveAutoInit.h
    M llvm/include/llvm/Transforms/Utils/NameAnonGlobals.h
    M llvm/include/llvm/Transforms/Utils/PredicateInfo.h
    M llvm/include/llvm/Transforms/Utils/ProfileVerify.h
    M llvm/include/llvm/Transforms/Utils/RelLookupTableConverter.h
    M llvm/include/llvm/Transforms/Utils/StripConvergenceIntrinsics.h
    M llvm/include/llvm/Transforms/Utils/StripGCRelocates.h
    M llvm/include/llvm/Transforms/Utils/StripNonLineTableDebugInfo.h
    M llvm/include/llvm/Transforms/Utils/SymbolRewriter.h
    M llvm/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h
    M llvm/include/llvm/Transforms/Utils/UnifyLoopExits.h
    M llvm/include/llvm/Transforms/Vectorize/LoadStoreVectorizer.h
    M llvm/include/llvm/Transforms/Vectorize/LoopIdiomVectorize.h
    M llvm/include/llvm/Transforms/Vectorize/LoopVectorize.h
    M llvm/include/llvm/Transforms/Vectorize/SLPVectorizer.h
    M llvm/include/llvm/Transforms/Vectorize/SandboxVectorizer/SandboxVectorizer.h
    M llvm/include/llvm/Transforms/Vectorize/VectorCombine.h
    M llvm/lib/Passes/PassBuilder.cpp
    M llvm/lib/Target/AArch64/AArch64.h
    M llvm/lib/Target/AMDGPU/AMDGPU.h
    M llvm/lib/Target/AMDGPU/AMDGPUCtorDtorLowering.h
    M llvm/lib/Target/AMDGPU/AMDGPUExportKernelRuntimeHandles.h
    M llvm/lib/Target/AMDGPU/AMDGPULowerVGPREncoding.h
    M llvm/lib/Target/AMDGPU/AMDGPUNextUseAnalysis.h
    M llvm/lib/Target/AMDGPU/AMDGPUPerfHintAnalysis.h
    M llvm/lib/Target/AMDGPU/AMDGPUPreloadKernArgProlog.h
    M llvm/lib/Target/AMDGPU/AMDGPUPrepareAGPRAlloc.h
    M llvm/lib/Target/AMDGPU/AMDGPURemoveIncompatibleFunctions.h
    M llvm/lib/Target/AMDGPU/AMDGPUReserveWWMRegs.h
    M llvm/lib/Target/AMDGPU/AMDGPUSplitModule.h
    M llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.h
    M llvm/lib/Target/AMDGPU/AMDGPUWaitSGPRHazards.h
    M llvm/lib/Target/AMDGPU/GCNDPPCombine.h
    M llvm/lib/Target/AMDGPU/GCNNSAReassign.h
    M llvm/lib/Target/AMDGPU/GCNPreRALongBranchReg.h
    M llvm/lib/Target/AMDGPU/GCNPreRAOptimizations.h
    M llvm/lib/Target/AMDGPU/GCNRewritePartialRegUses.h
    M llvm/lib/Target/AMDGPU/SIFixSGPRCopies.h
    M llvm/lib/Target/AMDGPU/SIFixVGPRCopies.h
    M llvm/lib/Target/AMDGPU/SIFoldOperands.h
    M llvm/lib/Target/AMDGPU/SIFormMemoryClauses.h
    M llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.h
    M llvm/lib/Target/AMDGPU/SILowerControlFlow.h
    M llvm/lib/Target/AMDGPU/SILowerSGPRSpills.h
    M llvm/lib/Target/AMDGPU/SILowerWWMCopies.h
    M llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.h
    M llvm/lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.h
    M llvm/lib/Target/AMDGPU/SIOptimizeVGPRLiveRange.h
    M llvm/lib/Target/AMDGPU/SIPeepholeSDWA.h
    M llvm/lib/Target/AMDGPU/SIPostRABundler.h
    M llvm/lib/Target/AMDGPU/SIPreAllocateWWMRegs.h
    M llvm/lib/Target/AMDGPU/SIShrinkInstructions.h
    M llvm/lib/Target/AMDGPU/SIWholeQuadMode.h
    M llvm/lib/Target/ARM/ARM.h
    M llvm/lib/Target/BPF/BPF.h
    M llvm/lib/Target/DirectX/DXILCBufferAccess.h
    M llvm/lib/Target/DirectX/DXILDataScalarization.h
    M llvm/lib/Target/DirectX/DXILFinalizeLinkage.h
    M llvm/lib/Target/DirectX/DXILFlattenArrays.h
    M llvm/lib/Target/DirectX/DXILForwardHandleAccesses.h
    M llvm/lib/Target/DirectX/DXILIntrinsicExpansion.h
    M llvm/lib/Target/DirectX/DXILLegalizePass.h
    M llvm/lib/Target/DirectX/DXILMemIntrinsics.h
    M llvm/lib/Target/DirectX/DXILOpLowering.h
    M llvm/lib/Target/DirectX/DXILPostOptimizationValidation.h
    M llvm/lib/Target/DirectX/DXILPrettyPrinter.h
    M llvm/lib/Target/DirectX/DXILResourceAccess.h
    M llvm/lib/Target/DirectX/DXILResourceImplicitBinding.h
    M llvm/lib/Target/DirectX/DXILRootSignature.h
    M llvm/lib/Target/DirectX/DXILShaderFlags.h
    M llvm/lib/Target/DirectX/DXILTranslateMetadata.h
    M llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.h
    M llvm/lib/Target/Hexagon/HexagonVectorLoopCarriedReuse.h
    M llvm/lib/Target/NVPTX/NVPTX.h
    M llvm/lib/Target/NVPTX/NVPTXCtorDtorLowering.h
    M llvm/lib/Target/RISCV/RISCV.h
    M llvm/lib/Target/SPIRV/SPIRVCBufferAccess.h
    M llvm/lib/Target/SPIRV/SPIRVCtorDtorLowering.h
    M llvm/lib/Target/SPIRV/SPIRVEmitIntrinsics.h
    M llvm/lib/Target/SPIRV/SPIRVLegalizeImplicitBinding.h
    M llvm/lib/Target/SPIRV/SPIRVLegalizePointerCast.h
    M llvm/lib/Target/SPIRV/SPIRVLegalizeZeroSizeArrays.h
    M llvm/lib/Target/SPIRV/SPIRVMergeRegionExitTargets.h
    M llvm/lib/Target/SPIRV/SPIRVPrepareFunctions.h
    M llvm/lib/Target/SPIRV/SPIRVPrepareGlobals.h
    M llvm/lib/Target/SPIRV/SPIRVPushConstantAccess.h
    M llvm/lib/Target/SPIRV/SPIRVRegularizer.h
    M llvm/lib/Target/SPIRV/SPIRVStructurizerWrapper.h
    M llvm/lib/Target/X86/X86.h
    M llvm/lib/Target/X86/X86AsmPrinter.h
    M llvm/lib/Transforms/Utils/ProfileVerify.cpp
    M llvm/unittests/Analysis/CGSCCPassManagerTest.cpp
    M llvm/unittests/Analysis/LastRunTrackingAnalysisTest.cpp
    M llvm/unittests/CodeGen/PassManagerTest.cpp
    M llvm/unittests/IR/PassBuilderCallbacksTest.cpp
    M llvm/unittests/IR/PassManagerTest.cpp
    M llvm/unittests/IR/TimePassesTest.cpp
    M llvm/unittests/Passes/Plugins/DoublerPlugin/DoublerPlugin.cpp
    M llvm/unittests/Passes/Plugins/TestPlugin/TestPlugin.cpp
    M llvm/unittests/Transforms/Scalar/LoopPassManagerTest.cpp
    M llvm/unittests/Transforms/Utils/MemTransferLowering.cpp
    M polly/include/polly/Pass/PollyFunctionPass.h
    M polly/include/polly/Pass/PollyModulePass.h
    M polly/include/polly/ScopDetection.h
    M polly/include/polly/ScopInfo.h
    M polly/include/polly/ScopInliner.h
    M polly/include/polly/Support/DumpFunctionPass.h
    M polly/include/polly/Support/DumpModulePass.h

  Log Message:
  -----------
  [PassManager] Make passes inherit from RequiredPassInfoMixin/OptionalPassInfoMixin (#192120)

It's very easy to forget to add `isRequired() { return true; }` for
passes that must be run on all IR, rather than e.g. being skipped on
optnone functions.

This PR adds RequiredPassInfoMixin/OptionalPassInfoMixin which have
`isRequired()`, and the long term vision is there to be no default
`isRequired()` on PassInfoMixin.

However, for out-of-tree migration purposes, we leave a `isRequired() {
return false; }` for now in PassInfoMixin.


https://discourse.llvm.org/t/rfc-introduce-mandatorypassinfomixin-optionalpassinfomixin-for-required-not-required-passes/90547

Assisted-by: Gemini



To unsubscribe from these emails, change your notification settings at https://github.com/llvm/llvm-project/settings/notifications


More information about the All-commits mailing list