|
LLVM 24.0.0git
|
This file provides the implementation of the PassBuilder based on our static pass registry as well as related functionality. More...
#include "PassesOptions.h"#include "llvm/ADT/Statistic.h"#include "llvm/Analysis/AliasAnalysis.h"#include "llvm/Analysis/BasicAliasAnalysis.h"#include "llvm/Analysis/CGSCCPassManager.h"#include "llvm/Analysis/FunctionPropertiesAnalysis.h"#include "llvm/Analysis/GlobalsModRef.h"#include "llvm/Analysis/InlineAdvisor.h"#include "llvm/Analysis/InstCount.h"#include "llvm/Analysis/ProfileSummaryInfo.h"#include "llvm/Analysis/ScopedNoAliasAA.h"#include "llvm/Analysis/TypeBasedAliasAnalysis.h"#include "llvm/IR/PassManager.h"#include "llvm/IR/Verifier.h"#include "llvm/Pass.h"#include "llvm/Passes/OptimizationLevel.h"#include "llvm/Passes/PassBuilder.h"#include "llvm/Passes/TriggerCrashPasses.h"#include "llvm/Support/CommandLine.h"#include "llvm/Support/ErrorHandling.h"#include "llvm/Support/PGOOptions.h"#include "llvm/Target/TargetMachine.h"#include "llvm/Transforms/AggressiveInstCombine/AggressiveInstCombine.h"#include "llvm/Transforms/Coroutines/CoroAnnotationElide.h"#include "llvm/Transforms/Coroutines/CoroCleanup.h"#include "llvm/Transforms/Coroutines/CoroConditionalWrapper.h"#include "llvm/Transforms/Coroutines/CoroEarly.h"#include "llvm/Transforms/Coroutines/CoroElide.h"#include "llvm/Transforms/Coroutines/CoroSplit.h"#include "llvm/Transforms/HipStdPar/HipStdPar.h"#include "llvm/Transforms/IPO/AlwaysInliner.h"#include "llvm/Transforms/IPO/Annotation2Metadata.h"#include "llvm/Transforms/IPO/ArgumentPromotion.h"#include "llvm/Transforms/IPO/Attributor.h"#include "llvm/Transforms/IPO/CalledValuePropagation.h"#include "llvm/Transforms/IPO/ConstantMerge.h"#include "llvm/Transforms/IPO/CrossDSOCFI.h"#include "llvm/Transforms/IPO/DeadArgumentElimination.h"#include "llvm/Transforms/IPO/ElimAvailExtern.h"#include "llvm/Transforms/IPO/EmbedBitcodePass.h"#include "llvm/Transforms/IPO/ExpandVariadics.h"#include "llvm/Transforms/IPO/FatLTOCleanup.h"#include "llvm/Transforms/IPO/ForceFunctionAttrs.h"#include "llvm/Transforms/IPO/FunctionAttrs.h"#include "llvm/Transforms/IPO/GlobalDCE.h"#include "llvm/Transforms/IPO/GlobalOpt.h"#include "llvm/Transforms/IPO/GlobalSplit.h"#include "llvm/Transforms/IPO/HotColdSplitting.h"#include "llvm/Transforms/IPO/InferFunctionAttrs.h"#include "llvm/Transforms/IPO/Inliner.h"#include "llvm/Transforms/IPO/Instrumentor.h"#include "llvm/Transforms/IPO/LowerTypeTests.h"#include "llvm/Transforms/IPO/MemProfContextDisambiguation.h"#include "llvm/Transforms/IPO/MergeFunctions.h"#include "llvm/Transforms/IPO/ModuleInliner.h"#include "llvm/Transforms/IPO/OpenMPOpt.h"#include "llvm/Transforms/IPO/PartialInlining.h"#include "llvm/Transforms/IPO/SCCP.h"#include "llvm/Transforms/IPO/SampleProfile.h"#include "llvm/Transforms/IPO/SampleProfileProbe.h"#include "llvm/Transforms/IPO/WholeProgramDevirt.h"#include "llvm/Transforms/InstCombine/InstCombine.h"#include "llvm/Transforms/Instrumentation/AllocToken.h"#include "llvm/Transforms/Instrumentation/CGProfile.h"#include "llvm/Transforms/Instrumentation/ControlHeightReduction.h"#include "llvm/Transforms/Instrumentation/InstrProfiling.h"#include "llvm/Transforms/Instrumentation/MemProfInstrumentation.h"#include "llvm/Transforms/Instrumentation/MemProfUse.h"#include "llvm/Transforms/Instrumentation/PGOCtxProfFlattening.h"#include "llvm/Transforms/Instrumentation/PGOCtxProfLowering.h"#include "llvm/Transforms/Instrumentation/PGOForceFunctionAttrs.h"#include "llvm/Transforms/Instrumentation/PGOInstrumentation.h"#include "llvm/Transforms/Scalar/ADCE.h"#include "llvm/Transforms/Scalar/AlignmentFromAssumptions.h"#include "llvm/Transforms/Scalar/AnnotationRemarks.h"#include "llvm/Transforms/Scalar/BDCE.h"#include "llvm/Transforms/Scalar/CallSiteSplitting.h"#include "llvm/Transforms/Scalar/ConstraintElimination.h"#include "llvm/Transforms/Scalar/CorrelatedValuePropagation.h"#include "llvm/Transforms/Scalar/DFAJumpThreading.h"#include "llvm/Transforms/Scalar/DeadStoreElimination.h"#include "llvm/Transforms/Scalar/DivRemPairs.h"#include "llvm/Transforms/Scalar/DropUnnecessaryAssumes.h"#include "llvm/Transforms/Scalar/EarlyCSE.h"#include "llvm/Transforms/Scalar/ExpandMemCmp.h"#include "llvm/Transforms/Scalar/Float2Int.h"#include "llvm/Transforms/Scalar/GVN.h"#include "llvm/Transforms/Scalar/GVNHoist.h"#include "llvm/Transforms/Scalar/GVNSink.h"#include "llvm/Transforms/Scalar/IndVarSimplify.h"#include "llvm/Transforms/Scalar/InferAlignment.h"#include "llvm/Transforms/Scalar/InstSimplifyPass.h"#include "llvm/Transforms/Scalar/JumpTableToSwitch.h"#include "llvm/Transforms/Scalar/JumpThreading.h"#include "llvm/Transforms/Scalar/LICM.h"#include "llvm/Transforms/Scalar/LoopDeletion.h"#include "llvm/Transforms/Scalar/LoopDistribute.h"#include "llvm/Transforms/Scalar/LoopFlatten.h"#include "llvm/Transforms/Scalar/LoopFuse.h"#include "llvm/Transforms/Scalar/LoopIdiomRecognize.h"#include "llvm/Transforms/Scalar/LoopInstSimplify.h"#include "llvm/Transforms/Scalar/LoopInterchange.h"#include "llvm/Transforms/Scalar/LoopLoadElimination.h"#include "llvm/Transforms/Scalar/LoopPassManager.h"#include "llvm/Transforms/Scalar/LoopRotation.h"#include "llvm/Transforms/Scalar/LoopSimplifyCFG.h"#include "llvm/Transforms/Scalar/LoopSink.h"#include "llvm/Transforms/Scalar/LoopUnrollAndJamPass.h"#include "llvm/Transforms/Scalar/LoopUnrollPass.h"#include "llvm/Transforms/Scalar/LoopVersioningLICM.h"#include "llvm/Transforms/Scalar/LowerConstantIntrinsics.h"#include "llvm/Transforms/Scalar/LowerExpectIntrinsic.h"#include "llvm/Transforms/Scalar/LowerMatrixIntrinsics.h"#include "llvm/Transforms/Scalar/MemCpyOptimizer.h"#include "llvm/Transforms/Scalar/MergeICmps.h"#include "llvm/Transforms/Scalar/MergedLoadStoreMotion.h"#include "llvm/Transforms/Scalar/NewGVN.h"#include "llvm/Transforms/Scalar/Reassociate.h"#include "llvm/Transforms/Scalar/SCCP.h"#include "llvm/Transforms/Scalar/SROA.h"#include "llvm/Transforms/Scalar/SimpleLoopUnswitch.h"#include "llvm/Transforms/Scalar/SimplifyCFG.h"#include "llvm/Transforms/Scalar/SpeculativeExecution.h"#include "llvm/Transforms/Scalar/TailRecursionElimination.h"#include "llvm/Transforms/Scalar/WarnMissedTransforms.h"#include "llvm/Transforms/Utils/AddDiscriminators.h"#include "llvm/Transforms/Utils/AssignGUID.h"#include "llvm/Transforms/Utils/AssumeBundleBuilder.h"#include "llvm/Transforms/Utils/CanonicalizeAliases.h"#include "llvm/Transforms/Utils/CountVisits.h"#include "llvm/Transforms/Utils/EntryExitInstrumenter.h"#include "llvm/Transforms/Utils/ExtraPassManager.h"#include "llvm/Transforms/Utils/InjectTLIMappings.h"#include "llvm/Transforms/Utils/LibCallsShrinkWrap.h"#include "llvm/Transforms/Utils/LowerCommentStringPass.h"#include "llvm/Transforms/Utils/Mem2Reg.h"#include "llvm/Transforms/Utils/MoveAutoInit.h"#include "llvm/Transforms/Utils/NameAnonGlobals.h"#include "llvm/Transforms/Utils/RelLookupTableConverter.h"#include "llvm/Transforms/Utils/SimplifyCFGOptions.h"#include "llvm/Transforms/Vectorize/LoopVectorize.h"#include "llvm/Transforms/Vectorize/SLPVectorizer.h"#include "llvm/Transforms/Vectorize/VectorCombine.h"Go to the source code of this file.
Namespaces | |
| namespace | llvm |
| This is an optimization pass for GlobalISel generic memory operations. | |
Functions | |
| static void | instructionCountersPass (ModulePassManager &MPM, bool IsPreOptimization) |
| static void | addAnnotationRemarksPass (ModulePassManager &MPM) |
| static bool | isLTOPreLink (ThinOrFullLTOPhase Phase) |
| static bool | isFullLTOPreLink (ThinOrFullLTOPhase Phase) |
| static bool | isThinLTOPreLink (ThinOrFullLTOPhase Phase) |
| static bool | isLTOPostLink (ThinOrFullLTOPhase Phase) |
| static bool | isFullLTOPostLink (ThinOrFullLTOPhase Phase) |
| static bool | isThinLTOPostLink (ThinOrFullLTOPhase Phase) |
| static CoroConditionalWrapper | buildCoroWrapper (ThinOrFullLTOPhase Phase) |
| static InlineParams | getInlineParamsFromOptLevel (OptimizationLevel Level) |
| static void | addModuleInlinerPass (ModulePassManager &MPM, const PassesOptions &Opts, OptimizationLevel Level, ThinOrFullLTOPhase Phase) |
This file provides the implementation of the PassBuilder based on our static pass registry as well as related functionality.
It also provides helpers to aid in analyzing, debugging, and testing passes and pass pipelines.
Definition in file PassBuilderPipelines.cpp.
|
static |
Definition at line 282 of file PassBuilderPipelines.cpp.
References llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::addPass(), and llvm::createModuleToFunctionPassAdaptor().
Referenced by llvm::PassBuilder::buildFatLTODefaultPipeline(), llvm::PassBuilder::buildLTODefaultPipeline(), llvm::PassBuilder::buildO0DefaultPipeline(), llvm::PassBuilder::buildPerModuleDefaultPipeline(), llvm::PassBuilder::buildThinLTODefaultPipeline(), and llvm::PassBuilder::buildThinLTOPreLinkDefaultPipeline().
|
static |
Definition at line 335 of file PassBuilderPipelines.cpp.
References llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::addPass(), llvm::CGSCCInliner, llvm::getInlineParamsFromOptLevel(), and Phase.
Referenced by llvm::PassBuilder::buildLTODefaultPipeline(), and llvm::PassBuilder::buildModuleOptimizationPipeline().
|
static |
Definition at line 319 of file PassBuilderPipelines.cpp.
References llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::addPass(), llvm::createModuleToPostOrderCGSCCPassAdaptor(), and Phase.
Referenced by llvm::PassBuilder::buildLTODefaultPipeline(), llvm::PassBuilder::buildO0DefaultPipeline(), and llvm::PassBuilder::buildThinLTODefaultPipeline().
|
static |
Definition at line 331 of file PassBuilderPipelines.cpp.
References llvm::getInlineParamsFromOptLevel().
|
static |
Definition at line 271 of file PassBuilderPipelines.cpp.
References llvm::PassManager< IRUnitT, AnalysisManagerT, ExtraArgTs >::addPass(), llvm::AreStatisticsEnabled(), and llvm::createModuleToFunctionPassAdaptor().
Referenced by llvm::PassBuilder::buildFatLTODefaultPipeline(), llvm::PassBuilder::buildLTODefaultPipeline(), llvm::PassBuilder::buildO0DefaultPipeline(), llvm::PassBuilder::buildPerModuleDefaultPipeline(), llvm::PassBuilder::buildThinLTODefaultPipeline(), and llvm::PassBuilder::buildThinLTOPreLinkDefaultPipeline().
|
static |
Definition at line 309 of file PassBuilderPipelines.cpp.
References llvm::FullLTOPostLink, and Phase.
Referenced by llvm::PassBuilder::buildModuleSimplificationPipeline().
|
static |
Definition at line 293 of file PassBuilderPipelines.cpp.
References llvm::FullLTOPreLink, and Phase.
|
static |
Definition at line 303 of file PassBuilderPipelines.cpp.
References llvm::FullLTOPostLink, Phase, and llvm::ThinLTOPostLink.
Referenced by llvm::PassBuilder::buildFunctionSimplificationPipeline(), and llvm::PassBuilder::buildModuleOptimizationPipeline().
|
static |
Definition at line 287 of file PassBuilderPipelines.cpp.
References llvm::FullLTOPreLink, Phase, and llvm::ThinLTOPreLink.
Referenced by llvm::PassBuilder::buildFunctionSimplificationPipeline(), llvm::PassBuilder::buildInlinerPipeline(), llvm::PassBuilder::buildModuleInlinerPipeline(), llvm::PassBuilder::buildModuleOptimizationPipeline(), llvm::PassBuilder::buildModuleSimplificationPipeline(), llvm::PassBuilder::buildO0DefaultPipeline(), llvm::PassBuilder::buildPerModuleDefaultPipeline(), and llvm::AMDGPUTargetMachine::registerPassBuilderCallbacks().
|
static |
Definition at line 314 of file PassBuilderPipelines.cpp.
References Phase, and llvm::ThinLTOPostLink.
Referenced by llvm::PassBuilder::buildModuleSimplificationPipeline().
|
static |
Definition at line 298 of file PassBuilderPipelines.cpp.
References Phase, and llvm::ThinLTOPreLink.
Referenced by llvm::PassBuilder::buildFunctionSimplificationPipeline(), llvm::PassBuilder::buildInlinerPipeline(), llvm::PassBuilder::buildModuleInlinerPipeline(), and llvm::PassBuilder::buildModuleSimplificationPipeline().