[all-commits] [llvm/llvm-project] a36f31: Forward declare Optional<T> in STLExtras.h

Reid Kleckner via All-commits all-commits at lists.llvm.org
Wed Nov 13 16:35:42 PST 2019


  Branch: refs/heads/master
  Home:   https://github.com/llvm/llvm-project
  Commit: a36f316390d4bc1bcb0e9de0f55831385ab24099
      https://github.com/llvm/llvm-project/commit/a36f316390d4bc1bcb0e9de0f55831385ab24099
  Author: Reid Kleckner <rnk at google.com>
  Date:   2019-11-13 (Wed, 13 Nov 2019)

  Changed paths:
    M lldb/include/lldb/Utility/UserIDResolver.h
    M llvm/include/llvm/ADT/STLExtras.h
    M llvm/include/llvm/ADT/StringSwitch.h
    M llvm/include/llvm/DebugInfo/DWARF/DWARFDebugFrame.h
    M llvm/include/llvm/Support/CachePruning.h
    M llvm/include/llvm/Support/Error.h
    M llvm/include/llvm/Support/Format.h
    M llvm/include/llvm/Support/Threading.h
    M llvm/lib/MC/MCInstrAnalysis.cpp
    M llvm/lib/Support/CrashRecoveryContext.cpp
    M llvm/lib/Support/DJB.cpp

  Log Message:
  -----------
  Forward declare Optional<T> in STLExtras.h

WIP stats


  Commit: 05da2fe52162c80dfa18aedf70cf73cb11201811
      https://github.com/llvm/llvm-project/commit/05da2fe52162c80dfa18aedf70cf73cb11201811
  Author: Reid Kleckner <rnk at google.com>
  Date:   2019-11-13 (Wed, 13 Nov 2019)

  Changed paths:
    M llvm/examples/IRTransforms/SimplifyCFG.cpp
    M llvm/include/llvm/Analysis/AliasAnalysis.h
    M llvm/include/llvm/Analysis/BranchProbabilityInfo.h
    M llvm/include/llvm/Analysis/DependenceAnalysis.h
    M llvm/include/llvm/Analysis/IntervalPartition.h
    M llvm/include/llvm/Analysis/LazyValueInfo.h
    M llvm/include/llvm/Analysis/LegacyDivergenceAnalysis.h
    M llvm/include/llvm/Analysis/LoopAccessAnalysis.h
    M llvm/include/llvm/Analysis/LoopInfo.h
    M llvm/include/llvm/Analysis/LoopPass.h
    M llvm/include/llvm/Analysis/PostDominators.h
    M llvm/include/llvm/CodeGen/GlobalISel/CSEInfo.h
    M llvm/include/llvm/CodeGen/LiveStacks.h
    M llvm/include/llvm/CodeGen/LiveVariables.h
    M llvm/include/llvm/CodeGen/MachineBranchProbabilityInfo.h
    M llvm/include/llvm/CodeGen/MachineLoopInfo.h
    M llvm/include/llvm/CodeGen/MachinePipeliner.h
    M llvm/include/llvm/CodeGen/ReachingDefAnalysis.h
    M llvm/include/llvm/CodeGen/RegisterUsageInfo.h
    M llvm/include/llvm/CodeGen/SlotIndexes.h
    M llvm/include/llvm/CodeGen/StackProtector.h
    M llvm/include/llvm/IR/Dominators.h
    M llvm/include/llvm/Pass.h
    M llvm/include/llvm/Transforms/InstCombine/InstCombine.h
    M llvm/include/llvm/Transforms/Utils/UnifyFunctionExitNodes.h
    M llvm/lib/Analysis/AliasAnalysis.cpp
    M llvm/lib/Analysis/AliasAnalysisEvaluator.cpp
    M llvm/lib/Analysis/AliasSetTracker.cpp
    M llvm/lib/Analysis/AssumptionCache.cpp
    M llvm/lib/Analysis/BasicAliasAnalysis.cpp
    M llvm/lib/Analysis/BlockFrequencyInfo.cpp
    M llvm/lib/Analysis/BranchProbabilityInfo.cpp
    M llvm/lib/Analysis/CFGPrinter.cpp
    M llvm/lib/Analysis/CFLAndersAliasAnalysis.cpp
    M llvm/lib/Analysis/CFLSteensAliasAnalysis.cpp
    M llvm/lib/Analysis/CallGraph.cpp
    M llvm/lib/Analysis/CallPrinter.cpp
    M llvm/lib/Analysis/CostModel.cpp
    M llvm/lib/Analysis/Delinearization.cpp
    M llvm/lib/Analysis/DemandedBits.cpp
    M llvm/lib/Analysis/DependenceAnalysis.cpp
    M llvm/lib/Analysis/DomPrinter.cpp
    M llvm/lib/Analysis/DominanceFrontier.cpp
    M llvm/lib/Analysis/GlobalsModRef.cpp
    M llvm/lib/Analysis/IVUsers.cpp
    M llvm/lib/Analysis/InstCount.cpp
    M llvm/lib/Analysis/IntervalPartition.cpp
    M llvm/lib/Analysis/LazyBlockFrequencyInfo.cpp
    M llvm/lib/Analysis/LazyBranchProbabilityInfo.cpp
    M llvm/lib/Analysis/LazyValueInfo.cpp
    M llvm/lib/Analysis/LegacyDivergenceAnalysis.cpp
    M llvm/lib/Analysis/Lint.cpp
    M llvm/lib/Analysis/LoopAccessAnalysis.cpp
    M llvm/lib/Analysis/LoopInfo.cpp
    M llvm/lib/Analysis/LoopPass.cpp
    M llvm/lib/Analysis/MemDepPrinter.cpp
    M llvm/lib/Analysis/MemDerefPrinter.cpp
    M llvm/lib/Analysis/MemoryDependenceAnalysis.cpp
    M llvm/lib/Analysis/MemorySSA.cpp
    M llvm/lib/Analysis/ModuleDebugInfoPrinter.cpp
    M llvm/lib/Analysis/ModuleSummaryAnalysis.cpp
    M llvm/lib/Analysis/MustExecute.cpp
    M llvm/lib/Analysis/OptimizationRemarkEmitter.cpp
    M llvm/lib/Analysis/PhiValues.cpp
    M llvm/lib/Analysis/PostDominators.cpp
    M llvm/lib/Analysis/ProfileSummaryInfo.cpp
    M llvm/lib/Analysis/RegionInfo.cpp
    M llvm/lib/Analysis/RegionPrinter.cpp
    M llvm/lib/Analysis/ScalarEvolution.cpp
    M llvm/lib/Analysis/ScalarEvolutionAliasAnalysis.cpp
    M llvm/lib/Analysis/ScopedNoAliasAA.cpp
    M llvm/lib/Analysis/StackSafetyAnalysis.cpp
    M llvm/lib/Analysis/TargetLibraryInfo.cpp
    M llvm/lib/Analysis/TargetTransformInfo.cpp
    M llvm/lib/Analysis/TypeBasedAliasAnalysis.cpp
    M llvm/lib/Bitcode/Writer/BitcodeWriterPass.cpp
    M llvm/lib/CodeGen/AtomicExpandPass.cpp
    M llvm/lib/CodeGen/BranchFolding.cpp
    M llvm/lib/CodeGen/BranchRelaxation.cpp
    M llvm/lib/CodeGen/BreakFalseDeps.cpp
    M llvm/lib/CodeGen/CFGuardLongjmp.cpp
    M llvm/lib/CodeGen/CFIInstrInserter.cpp
    M llvm/lib/CodeGen/CodeGenPrepare.cpp
    M llvm/lib/CodeGen/DeadMachineInstructionElim.cpp
    M llvm/lib/CodeGen/DwarfEHPrepare.cpp
    M llvm/lib/CodeGen/EarlyIfConversion.cpp
    M llvm/lib/CodeGen/EdgeBundles.cpp
    M llvm/lib/CodeGen/ExpandMemCmp.cpp
    M llvm/lib/CodeGen/ExpandPostRAPseudos.cpp
    M llvm/lib/CodeGen/ExpandReductions.cpp
    M llvm/lib/CodeGen/FEntryInserter.cpp
    M llvm/lib/CodeGen/FinalizeISel.cpp
    M llvm/lib/CodeGen/FuncletLayout.cpp
    M llvm/lib/CodeGen/GCMetadata.cpp
    M llvm/lib/CodeGen/GCRootLowering.cpp
    M llvm/lib/CodeGen/GlobalISel/CSEInfo.cpp
    M llvm/lib/CodeGen/GlobalISel/IRTranslator.cpp
    M llvm/lib/CodeGen/GlobalISel/Legalizer.cpp
    M llvm/lib/CodeGen/GlobalISel/Localizer.cpp
    M llvm/lib/CodeGen/GlobalISel/RegBankSelect.cpp
    M llvm/lib/CodeGen/GlobalMerge.cpp
    M llvm/lib/CodeGen/HardwareLoops.cpp
    M llvm/lib/CodeGen/IfConversion.cpp
    M llvm/lib/CodeGen/ImplicitNullChecks.cpp
    M llvm/lib/CodeGen/IndirectBrExpandPass.cpp
    M llvm/lib/CodeGen/InterleavedAccessPass.cpp
    M llvm/lib/CodeGen/InterleavedLoadCombinePass.cpp
    M llvm/lib/CodeGen/LazyMachineBlockFrequencyInfo.cpp
    M llvm/lib/CodeGen/LiveDebugValues.cpp
    M llvm/lib/CodeGen/LiveDebugVariables.cpp
    M llvm/lib/CodeGen/LiveRangeShrink.cpp
    M llvm/lib/CodeGen/LiveRegMatrix.cpp
    M llvm/lib/CodeGen/LocalStackSlotAllocation.cpp
    M llvm/lib/CodeGen/LowerEmuTLS.cpp
    M llvm/lib/CodeGen/MIRCanonicalizerPass.cpp
    M llvm/lib/CodeGen/MIRNamerPass.cpp
    M llvm/lib/CodeGen/MIRPrintingPass.cpp
    M llvm/lib/CodeGen/MachineBlockFrequencyInfo.cpp
    M llvm/lib/CodeGen/MachineBlockPlacement.cpp
    M llvm/lib/CodeGen/MachineBranchProbabilityInfo.cpp
    M llvm/lib/CodeGen/MachineCSE.cpp
    M llvm/lib/CodeGen/MachineCombiner.cpp
    M llvm/lib/CodeGen/MachineCopyPropagation.cpp
    M llvm/lib/CodeGen/MachineDominanceFrontier.cpp
    M llvm/lib/CodeGen/MachineDominators.cpp
    M llvm/lib/CodeGen/MachineFunctionPrinterPass.cpp
    M llvm/lib/CodeGen/MachineInstrBundle.cpp
    M llvm/lib/CodeGen/MachineLICM.cpp
    M llvm/lib/CodeGen/MachineLoopInfo.cpp
    M llvm/lib/CodeGen/MachineModuleInfo.cpp
    M llvm/lib/CodeGen/MachineOptimizationRemarkEmitter.cpp
    M llvm/lib/CodeGen/MachineOutliner.cpp
    M llvm/lib/CodeGen/MachinePostDominators.cpp
    M llvm/lib/CodeGen/MachineRegionInfo.cpp
    M llvm/lib/CodeGen/MachineScheduler.cpp
    M llvm/lib/CodeGen/MachineSink.cpp
    M llvm/lib/CodeGen/MachineTraceMetrics.cpp
    M llvm/lib/CodeGen/MachineVerifier.cpp
    M llvm/lib/CodeGen/ModuloSchedule.cpp
    M llvm/lib/CodeGen/OptimizePHIs.cpp
    M llvm/lib/CodeGen/PatchableFunction.cpp
    M llvm/lib/CodeGen/PeepholeOptimizer.cpp
    M llvm/lib/CodeGen/PostRAHazardRecognizer.cpp
    M llvm/lib/CodeGen/PostRASchedulerList.cpp
    M llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
    M llvm/lib/CodeGen/ProcessImplicitDefs.cpp
    M llvm/lib/CodeGen/PrologEpilogInserter.cpp
    M llvm/lib/CodeGen/RegAllocFast.cpp
    M llvm/lib/CodeGen/RegisterCoalescer.cpp
    M llvm/lib/CodeGen/RegisterScavenging.cpp
    M llvm/lib/CodeGen/RenameIndependentSubregs.cpp
    M llvm/lib/CodeGen/ResetMachineFunctionPass.cpp
    M llvm/lib/CodeGen/SafeStack.cpp
    M llvm/lib/CodeGen/ScalarizeMaskedMemIntrin.cpp
    M llvm/lib/CodeGen/SelectionDAG/SelectionDAGISel.cpp
    M llvm/lib/CodeGen/ShadowStackGCLowering.cpp
    M llvm/lib/CodeGen/ShrinkWrap.cpp
    M llvm/lib/CodeGen/SjLjEHPrepare.cpp
    M llvm/lib/CodeGen/SlotIndexes.cpp
    M llvm/lib/CodeGen/SpillPlacement.cpp
    M llvm/lib/CodeGen/StackColoring.cpp
    M llvm/lib/CodeGen/StackMapLivenessAnalysis.cpp
    M llvm/lib/CodeGen/StackProtector.cpp
    M llvm/lib/CodeGen/StackSlotColoring.cpp
    M llvm/lib/CodeGen/TailDuplication.cpp
    M llvm/lib/CodeGen/TargetPassConfig.cpp
    M llvm/lib/CodeGen/UnreachableBlockElim.cpp
    M llvm/lib/CodeGen/WasmEHPrepare.cpp
    M llvm/lib/CodeGen/WinEHPrepare.cpp
    M llvm/lib/CodeGen/XRayInstrumentation.cpp
    M llvm/lib/IR/Core.cpp
    M llvm/lib/IR/Dominators.cpp
    M llvm/lib/IR/IRPrintingPasses.cpp
    M llvm/lib/IR/SafepointIRVerifier.cpp
    M llvm/lib/IR/Verifier.cpp
    M llvm/lib/Target/AArch64/AArch64ConditionOptimizer.cpp
    M llvm/lib/Target/AArch64/AArch64ConditionalCompares.cpp
    M llvm/lib/Target/AArch64/AArch64FalkorHWPFFix.cpp
    M llvm/lib/Target/AArch64/AArch64PromoteConstant.cpp
    M llvm/lib/Target/AArch64/AArch64TargetMachine.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUAnnotateUniformValues.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUAtomicOptimizer.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUCodeGenPrepare.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUISelDAGToDAG.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUInline.cpp
    M llvm/lib/Target/AMDGPU/AMDGPULibCalls.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUMachineCFGStructurizer.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUPrintfRuntimeBinding.cpp
    M llvm/lib/Target/AMDGPU/AMDGPURewriteOutArguments.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUTargetMachine.cpp
    M llvm/lib/Target/AMDGPU/AMDGPUUnifyDivergentExitNodes.cpp
    M llvm/lib/Target/AMDGPU/AMDILCFGStructurizer.cpp
    M llvm/lib/Target/AMDGPU/GCNNSAReassign.cpp
    M llvm/lib/Target/AMDGPU/GCNRegBankReassign.cpp
    M llvm/lib/Target/AMDGPU/SIAnnotateControlFlow.cpp
    M llvm/lib/Target/AMDGPU/SIFixSGPRCopies.cpp
    M llvm/lib/Target/AMDGPU/SIFormMemoryClauses.cpp
    M llvm/lib/Target/AMDGPU/SILoadStoreOptimizer.cpp
    M llvm/lib/Target/AMDGPU/SILowerI1Copies.cpp
    M llvm/lib/Target/AMDGPU/SILowerSGPRSpills.cpp
    M llvm/lib/Target/AMDGPU/SIOptimizeExecMasking.cpp
    M llvm/lib/Target/AMDGPU/SIOptimizeExecMaskingPreRA.cpp
    M llvm/lib/Target/AMDGPU/SIPreAllocateWWMRegs.cpp
    M llvm/lib/Target/AMDGPU/SIWholeQuadMode.cpp
    M llvm/lib/Target/Hexagon/HexagonBitSimplify.cpp
    M llvm/lib/Target/Hexagon/HexagonCommonGEP.cpp
    M llvm/lib/Target/Hexagon/HexagonConstExtenders.cpp
    M llvm/lib/Target/Hexagon/HexagonExpandCondsets.cpp
    M llvm/lib/Target/Hexagon/HexagonGenExtract.cpp
    M llvm/lib/Target/Hexagon/HexagonGenInsert.cpp
    M llvm/lib/Target/Hexagon/HexagonGenPredicate.cpp
    M llvm/lib/Target/Hexagon/HexagonHardwareLoops.cpp
    M llvm/lib/Target/Hexagon/HexagonLoopIdiomRecognition.cpp
    M llvm/lib/Target/Hexagon/HexagonNewValueJump.cpp
    M llvm/lib/Target/Hexagon/HexagonOptAddrMode.cpp
    M llvm/lib/Target/Hexagon/HexagonRDFOpt.cpp
    M llvm/lib/Target/Hexagon/HexagonStoreWidening.cpp
    M llvm/lib/Target/Hexagon/HexagonVLIWPacketizer.cpp
    M llvm/lib/Target/Hexagon/HexagonVectorLoopCarriedReuse.cpp
    M llvm/lib/Target/Mips/MipsPreLegalizerCombiner.cpp
    M llvm/lib/Target/Mips/MipsTargetMachine.cpp
    M llvm/lib/Target/PowerPC/PPCBranchCoalescing.cpp
    M llvm/lib/Target/PowerPC/PPCCTRLoops.cpp
    M llvm/lib/Target/PowerPC/PPCLoopPreIncPrep.cpp
    M llvm/lib/Target/PowerPC/PPCMIPeephole.cpp
    M llvm/lib/Target/PowerPC/PPCReduceCRLogicals.cpp
    M llvm/lib/Target/PowerPC/PPCTLSDynamicCall.cpp
    M llvm/lib/Target/PowerPC/PPCVSXFMAMutate.cpp
    M llvm/lib/Target/RISCV/RISCVTargetMachine.cpp
    M llvm/lib/Target/WebAssembly/WebAssemblyExceptionInfo.cpp
    M llvm/lib/Target/X86/X86AvoidStoreForwardingBlocks.cpp
    M llvm/lib/Target/X86/X86CmovConversion.cpp
    M llvm/lib/Target/X86/X86FloatingPoint.cpp
    M llvm/lib/Transforms/AggressiveInstCombine/AggressiveInstCombine.cpp
    M llvm/lib/Transforms/Coroutines/CoroElide.cpp
    M llvm/lib/Transforms/Coroutines/CoroSplit.cpp
    M llvm/lib/Transforms/Coroutines/Coroutines.cpp
    M llvm/lib/Transforms/IPO/AlwaysInliner.cpp
    M llvm/lib/Transforms/IPO/ArgumentPromotion.cpp
    M llvm/lib/Transforms/IPO/Attributor.cpp
    M llvm/lib/Transforms/IPO/BarrierNoopPass.cpp
    M llvm/lib/Transforms/IPO/BlockExtractor.cpp
    M llvm/lib/Transforms/IPO/CalledValuePropagation.cpp
    M llvm/lib/Transforms/IPO/ConstantMerge.cpp
    M llvm/lib/Transforms/IPO/CrossDSOCFI.cpp
    M llvm/lib/Transforms/IPO/DeadArgumentElimination.cpp
    M llvm/lib/Transforms/IPO/ElimAvailExtern.cpp
    M llvm/lib/Transforms/IPO/ForceFunctionAttrs.cpp
    M llvm/lib/Transforms/IPO/FunctionAttrs.cpp
    M llvm/lib/Transforms/IPO/FunctionImport.cpp
    M llvm/lib/Transforms/IPO/GlobalDCE.cpp
    M llvm/lib/Transforms/IPO/GlobalOpt.cpp
    M llvm/lib/Transforms/IPO/GlobalSplit.cpp
    M llvm/lib/Transforms/IPO/HotColdSplitting.cpp
    M llvm/lib/Transforms/IPO/IPConstantPropagation.cpp
    M llvm/lib/Transforms/IPO/InferFunctionAttrs.cpp
    M llvm/lib/Transforms/IPO/InlineSimple.cpp
    M llvm/lib/Transforms/IPO/Internalize.cpp
    M llvm/lib/Transforms/IPO/LoopExtractor.cpp
    M llvm/lib/Transforms/IPO/LowerTypeTests.cpp
    M llvm/lib/Transforms/IPO/MergeFunctions.cpp
    M llvm/lib/Transforms/IPO/PartialInlining.cpp
    M llvm/lib/Transforms/IPO/PruneEH.cpp
    M llvm/lib/Transforms/IPO/SCCP.cpp
    M llvm/lib/Transforms/IPO/SampleProfile.cpp
    M llvm/lib/Transforms/IPO/StripDeadPrototypes.cpp
    M llvm/lib/Transforms/IPO/StripSymbols.cpp
    M llvm/lib/Transforms/IPO/ThinLTOBitcodeWriter.cpp
    M llvm/lib/Transforms/IPO/WholeProgramDevirt.cpp
    M llvm/lib/Transforms/InstCombine/InstructionCombining.cpp
    M llvm/lib/Transforms/Instrumentation/AddressSanitizer.cpp
    M llvm/lib/Transforms/Instrumentation/BoundsChecking.cpp
    M llvm/lib/Transforms/Instrumentation/ControlHeightReduction.cpp
    M llvm/lib/Transforms/Instrumentation/DataFlowSanitizer.cpp
    M llvm/lib/Transforms/Instrumentation/GCOVProfiling.cpp
    M llvm/lib/Transforms/Instrumentation/HWAddressSanitizer.cpp
    M llvm/lib/Transforms/Instrumentation/IndirectCallPromotion.cpp
    M llvm/lib/Transforms/Instrumentation/InstrOrderFile.cpp
    M llvm/lib/Transforms/Instrumentation/InstrProfiling.cpp
    M llvm/lib/Transforms/Instrumentation/MemorySanitizer.cpp
    M llvm/lib/Transforms/Instrumentation/PGOInstrumentation.cpp
    M llvm/lib/Transforms/Instrumentation/PGOMemOPSizeOpt.cpp
    M llvm/lib/Transforms/Instrumentation/SanitizerCoverage.cpp
    M llvm/lib/Transforms/Instrumentation/ThreadSanitizer.cpp
    M llvm/lib/Transforms/ObjCARC/ObjCARCAPElim.cpp
    M llvm/lib/Transforms/ObjCARC/ObjCARCContract.cpp
    M llvm/lib/Transforms/ObjCARC/ObjCARCExpand.cpp
    M llvm/lib/Transforms/ObjCARC/ObjCARCOpts.cpp
    M llvm/lib/Transforms/ObjCARC/ProvenanceAnalysisEvaluator.cpp
    M llvm/lib/Transforms/Scalar/ADCE.cpp
    M llvm/lib/Transforms/Scalar/AlignmentFromAssumptions.cpp
    M llvm/lib/Transforms/Scalar/BDCE.cpp
    M llvm/lib/Transforms/Scalar/CallSiteSplitting.cpp
    M llvm/lib/Transforms/Scalar/ConstantHoisting.cpp
    M llvm/lib/Transforms/Scalar/ConstantProp.cpp
    M llvm/lib/Transforms/Scalar/CorrelatedValuePropagation.cpp
    M llvm/lib/Transforms/Scalar/DCE.cpp
    M llvm/lib/Transforms/Scalar/DeadStoreElimination.cpp
    M llvm/lib/Transforms/Scalar/DivRemPairs.cpp
    M llvm/lib/Transforms/Scalar/EarlyCSE.cpp
    M llvm/lib/Transforms/Scalar/FlattenCFGPass.cpp
    M llvm/lib/Transforms/Scalar/Float2Int.cpp
    M llvm/lib/Transforms/Scalar/GVN.cpp
    M llvm/lib/Transforms/Scalar/GVNHoist.cpp
    M llvm/lib/Transforms/Scalar/GVNSink.cpp
    M llvm/lib/Transforms/Scalar/GuardWidening.cpp
    M llvm/lib/Transforms/Scalar/IndVarSimplify.cpp
    M llvm/lib/Transforms/Scalar/InductiveRangeCheckElimination.cpp
    M llvm/lib/Transforms/Scalar/InstSimplifyPass.cpp
    M llvm/lib/Transforms/Scalar/JumpThreading.cpp
    M llvm/lib/Transforms/Scalar/LICM.cpp
    M llvm/lib/Transforms/Scalar/LoopDataPrefetch.cpp
    M llvm/lib/Transforms/Scalar/LoopDeletion.cpp
    M llvm/lib/Transforms/Scalar/LoopDistribute.cpp
    M llvm/lib/Transforms/Scalar/LoopFuse.cpp
    M llvm/lib/Transforms/Scalar/LoopIdiomRecognize.cpp
    M llvm/lib/Transforms/Scalar/LoopInstSimplify.cpp
    M llvm/lib/Transforms/Scalar/LoopInterchange.cpp
    M llvm/lib/Transforms/Scalar/LoopLoadElimination.cpp
    M llvm/lib/Transforms/Scalar/LoopPredication.cpp
    M llvm/lib/Transforms/Scalar/LoopRerollPass.cpp
    M llvm/lib/Transforms/Scalar/LoopRotation.cpp
    M llvm/lib/Transforms/Scalar/LoopSimplifyCFG.cpp
    M llvm/lib/Transforms/Scalar/LoopSink.cpp
    M llvm/lib/Transforms/Scalar/LoopStrengthReduce.cpp
    M llvm/lib/Transforms/Scalar/LoopUnrollAndJamPass.cpp
    M llvm/lib/Transforms/Scalar/LoopUnrollPass.cpp
    M llvm/lib/Transforms/Scalar/LoopUnswitch.cpp
    M llvm/lib/Transforms/Scalar/LoopVersioningLICM.cpp
    M llvm/lib/Transforms/Scalar/LowerAtomic.cpp
    M llvm/lib/Transforms/Scalar/LowerConstantIntrinsics.cpp
    M llvm/lib/Transforms/Scalar/LowerExpectIntrinsic.cpp
    M llvm/lib/Transforms/Scalar/LowerGuardIntrinsic.cpp
    M llvm/lib/Transforms/Scalar/LowerWidenableCondition.cpp
    M llvm/lib/Transforms/Scalar/MakeGuardsExplicit.cpp
    M llvm/lib/Transforms/Scalar/MemCpyOptimizer.cpp
    M llvm/lib/Transforms/Scalar/MergeICmps.cpp
    M llvm/lib/Transforms/Scalar/MergedLoadStoreMotion.cpp
    M llvm/lib/Transforms/Scalar/NaryReassociate.cpp
    M llvm/lib/Transforms/Scalar/NewGVN.cpp
    M llvm/lib/Transforms/Scalar/PartiallyInlineLibCalls.cpp
    M llvm/lib/Transforms/Scalar/PlaceSafepoints.cpp
    M llvm/lib/Transforms/Scalar/Reassociate.cpp
    M llvm/lib/Transforms/Scalar/Reg2Mem.cpp
    M llvm/lib/Transforms/Scalar/RewriteStatepointsForGC.cpp
    M llvm/lib/Transforms/Scalar/SCCP.cpp
    M llvm/lib/Transforms/Scalar/SROA.cpp
    M llvm/lib/Transforms/Scalar/Scalarizer.cpp
    M llvm/lib/Transforms/Scalar/SeparateConstOffsetFromGEP.cpp
    M llvm/lib/Transforms/Scalar/SimpleLoopUnswitch.cpp
    M llvm/lib/Transforms/Scalar/SimplifyCFGPass.cpp
    M llvm/lib/Transforms/Scalar/Sink.cpp
    M llvm/lib/Transforms/Scalar/SpeculativeExecution.cpp
    M llvm/lib/Transforms/Scalar/StraightLineStrengthReduce.cpp
    M llvm/lib/Transforms/Scalar/StructurizeCFG.cpp
    M llvm/lib/Transforms/Scalar/TailRecursionElimination.cpp
    M llvm/lib/Transforms/Scalar/WarnMissedTransforms.cpp
    M llvm/lib/Transforms/Utils/AddDiscriminators.cpp
    M llvm/lib/Transforms/Utils/BreakCriticalEdges.cpp
    M llvm/lib/Transforms/Utils/CanonicalizeAliases.cpp
    M llvm/lib/Transforms/Utils/EntryExitInstrumenter.cpp
    M llvm/lib/Transforms/Utils/InstructionNamer.cpp
    M llvm/lib/Transforms/Utils/LCSSA.cpp
    M llvm/lib/Transforms/Utils/LibCallsShrinkWrap.cpp
    M llvm/lib/Transforms/Utils/LoopSimplify.cpp
    M llvm/lib/Transforms/Utils/LoopUtils.cpp
    M llvm/lib/Transforms/Utils/LoopVersioning.cpp
    M llvm/lib/Transforms/Utils/LowerInvoke.cpp
    M llvm/lib/Transforms/Utils/LowerSwitch.cpp
    M llvm/lib/Transforms/Utils/Mem2Reg.cpp
    M llvm/lib/Transforms/Utils/MetaRenamer.cpp
    M llvm/lib/Transforms/Utils/NameAnonGlobals.cpp
    M llvm/lib/Transforms/Utils/PredicateInfo.cpp
    M llvm/lib/Transforms/Utils/StripGCRelocates.cpp
    M llvm/lib/Transforms/Utils/StripNonLineTableDebugInfo.cpp
    M llvm/lib/Transforms/Utils/SymbolRewriter.cpp
    M llvm/lib/Transforms/Utils/UnifyFunctionExitNodes.cpp
    M llvm/lib/Transforms/Vectorize/LoadStoreVectorizer.cpp
    M llvm/lib/Transforms/Vectorize/LoopVectorize.cpp
    M llvm/lib/Transforms/Vectorize/SLPVectorizer.cpp
    M llvm/tools/bugpoint/bugpoint.cpp
    M llvm/tools/llc/llc.cpp
    M llvm/tools/llvm-opt-fuzzer/llvm-opt-fuzzer.cpp
    M polly/lib/Analysis/PolyhedralInfo.cpp
    M polly/lib/Analysis/ScopDetection.cpp
    M polly/lib/Analysis/ScopInfo.cpp
    M polly/lib/CodeGen/CodeGeneration.cpp
    M polly/lib/Transform/CodePreparation.cpp
    M polly/lib/Transform/DeLICM.cpp
    M polly/lib/Transform/ForwardOpTree.cpp
    M polly/lib/Transform/MaximalStaticExpansion.cpp
    M polly/lib/Transform/ScheduleOptimizer.cpp
    M polly/lib/Transform/Simplify.cpp

  Log Message:
  -----------
  Sink all InitializePasses.h includes

This file lists every pass in LLVM, and is included by Pass.h, which is
very popular. Every time we add, remove, or rename a pass in LLVM, it
caused lots of recompilation.

I found this fact by looking at this table, which is sorted by the
number of times a file was changed over the last 100,000 git commits
multiplied by the number of object files that depend on it in the
current checkout:
  recompiles    touches affected_files  header
  342380        95      3604    llvm/include/llvm/ADT/STLExtras.h
  314730        234     1345    llvm/include/llvm/InitializePasses.h
  307036        118     2602    llvm/include/llvm/ADT/APInt.h
  213049        59      3611    llvm/include/llvm/Support/MathExtras.h
  170422        47      3626    llvm/include/llvm/Support/Compiler.h
  162225        45      3605    llvm/include/llvm/ADT/Optional.h
  158319        63      2513    llvm/include/llvm/ADT/Triple.h
  140322        39      3598    llvm/include/llvm/ADT/StringRef.h
  137647        59      2333    llvm/include/llvm/Support/Error.h
  131619        73      1803    llvm/include/llvm/Support/FileSystem.h

Before this change, touching InitializePasses.h would cause 1345 files
to recompile. After this change, touching it only causes 550 compiles in
an incremental rebuild.

Reviewers: bkramer, asbirlea, bollu, jdoerfert

Differential Revision: https://reviews.llvm.org/D70211


Compare: https://github.com/llvm/llvm-project/compare/af7d4022c77d...05da2fe52162


More information about the All-commits mailing list