30 cl::desc(
"Whether to force the NewPM on/off. Not setting the "
31 "option will default to what the target prefers."),
36 std::unique_ptr<ToolOutputFile> &DwoOS,
62 std::unique_ptr<ToolOutputFile> &DwoOS,
78 PB.registerModuleAnalyses(
MAM);
79 PB.registerCGSCCAnalyses(
CGAM);
80 PB.registerFunctionAnalyses(
FAM);
81 PB.registerLoopAnalyses(
LAM);
82 PB.registerMachineFunctionAnalyses(MFAM);
87 Error BuildPipelineError =
90 if (BuildPipelineError)
91 return BuildPipelineError;
99 std::unique_ptr<ToolOutputFile> &DwoOS,
This header provides classes for managing passes over SCCs of the call graph.
This header defines various interfaces for pass management in LLVM.
This header provides classes for managing per-loop analyses.
CGSCCAnalysisManager CGAM
FunctionAnalysisManager FAM
ModuleAnalysisManager MAM
PassInstrumentationCallbacks PIC
PassBuilder PB(Machine, PassOpts->PTO, std::nullopt, &PIC)
static cl::opt< cl::boolOrDefault > ForceNewPM("force-new-pm-codegen", cl::desc("Whether to force the NewPM on/off. Not setting the " "option will default to what the target prefers."), cl::init(cl::boolOrDefault::BOU_UNSET))
static Error runCodeGenPipelineLegacy(TargetMachine &TM, Module &M, raw_pwrite_stream &OS, std::unique_ptr< ToolOutputFile > &DwoOS, CodeGenFileType CGFT, bool PrintPipelinePasses, bool DisableVerify)
static Error runCodeGenPipelineNewPM(TargetMachine &TM, Module &M, raw_pwrite_stream &OS, std::unique_ptr< ToolOutputFile > &DwoOS, CodeGenFileType CGFT, bool DisableVerify, IntrusiveRefCntPtr< vfs::FileSystem > VFS)
Lightweight error class with error context and mandatory checking.
static ErrorSuccess success()
Create a success value.
A smart pointer to a reference-counted object that inherits from RefCountedBase or ThreadSafeRefCount...
An analysis that produces MachineModuleInfo for a module.
This class contains meta information specific to a module.
const MCContext & getContext() const
A Module instance is used to store all the information related to an LLVM module.
This class provides access to building LLVM's passes.
This class manages callbacks registration, as well as provides a way for PassInstrumentation to pass ...
PreservedAnalyses run(IRUnitT &IR, AnalysisManagerT &AM, ExtraArgTs... ExtraArgs)
Run all of the passes in this manager over the given unit of IR.
Tunable parameters for passes in the default pipelines.
Implementation of the target library information.
Primary interface to the complete machine description for the target machine.
virtual bool shouldDefaultToNewPM() const
Returns true if frontends should default to using the NewPM for this specific target.
virtual bool addPassesToEmitFile(PassManagerBase &, raw_pwrite_stream &, raw_pwrite_stream *, CodeGenFileType, bool=true, MachineModuleInfoWrapperPass *MMIWP=nullptr)
Add passes to the specified pass manager to get the specified file emitted.
virtual Error buildCodeGenPipeline(ModulePassManager &MPM, ModuleAnalysisManager &MAM, raw_pwrite_stream &Out, raw_pwrite_stream *DwoOut, CodeGenFileType FileType, const CGPassBuilderOption &Opt, MCContext &Ctx, PassInstrumentationCallbacks *PIC)
const Triple & getTargetTriple() const
TargetIRAnalysis getTargetIRAnalysis() const
Get a TargetIRAnalysis appropriate for the target.
VectorLibrary VecLib
Vector math library to use.
PassManager manages ModulePassManagers.
void add(Pass *P) override
Add a pass to the queue of passes to run.
bool run(Module &M)
run - Execute all of the passes scheduled for execution.
An abstract base class for streams implementations that also support a pwrite operation.
Interfaces for registering analysis passes, producing common pass manager configurations,...
initializer< Ty > init(const Ty &Val)
This is an optimization pass for GlobalISel generic memory operations.
LLVM_ABI cl::opt< std::optional< PrintPipelinePassesFormat >, false, PrintPipelinePassesFormatParser > PrintPipelinePasses
Common option used by multiple tools to print pipeline passes.
AnalysisManager< MachineFunction > MachineFunctionAnalysisManager
Error createStringError(std::error_code EC, char const *Fmt, const Ts &... Vals)
Create formatted StringError object.
AnalysisManager< LazyCallGraph::SCC, LazyCallGraph & > CGSCCAnalysisManager
The CGSCC analysis manager.
AnalysisManager< Loop, LoopStandardAnalysisResults & > LoopAnalysisManager
The loop analysis manager.
CodeGenFileType
These enums are meant to be passed into addPassesToEmitFile to indicate what type of file to emit,...
PassManager< Module > ModulePassManager
Convenience typedef for a pass manager over modules.
Error runCodeGenPipeline(TargetMachine &TM, Module &M, raw_pwrite_stream &OS, std::unique_ptr< ToolOutputFile > &DwoOS, CodeGenFileType CGFT, bool PrintPipelinePasses=false, bool DisableVerify=true, IntrusiveRefCntPtr< vfs::FileSystem > VFS=vfs::getRealFileSystem())
LLVM_ABI ImmutablePass * createTargetTransformInfoWrapperPass(TargetIRAnalysis TIRA)
Create an analysis pass wrapper around a TTI object.
AnalysisManager< Function > FunctionAnalysisManager
Convenience typedef for the Function analysis manager.
AnalysisManager< Module > ModuleAnalysisManager
Convenience typedef for the Module analysis manager.
LLVM_ABI CGPassBuilderOption getCGPassBuilderOption()