13#ifndef LLVM_ANALYSIS_MODULESUMMARYANALYSIS_H
14#define LLVM_ANALYSIS_MODULESUMMARYANALYSIS_H
59 std::optional<ModuleSummaryIndex> Index;
70 bool runOnModule(
Module &M)
override;
71 bool doFinalization(
Module &M)
override;
This header defines various interfaces for pass management in LLVM.
ModuleSummaryIndex.h This file contains the declarations the classes that hold the module index and s...
Represent the analysis usage information of a pass.
BlockFrequencyInfo pass uses BlockFrequencyInfoImpl implementation to estimate IR basic block frequen...
Base class for all callable instructions (InvokeInst and CallInst) Holds everything related to callin...
ImmutableModuleSummaryIndexWrapperPass(const ModuleSummaryIndex *Index=nullptr)
const ModuleSummaryIndex * getIndex() const
Analysis pass to provide the ModuleSummaryIndex object.
LLVM_ABI Result run(Module &M, ModuleAnalysisManager &AM)
ModuleSummaryIndex Result
ModuleSummaryIndexWrapperPass()
ModuleSummaryIndex & getIndex()
Get the index built by pass.
const ModuleSummaryIndex & getIndex() const
Class to hold module path string table and global value map, and encapsulate methods for operating on...
A Module instance is used to store all the information related to an LLVM module.
Analysis providing profile information.
Interface to access stack safety analysis results for single function.
This is an optimization pass for GlobalISel generic memory operations.
LLVM_ABI bool mayHaveMemprofSummary(const CallBase *CB)
Returns true if the instruction could have memprof metadata, used to ensure consistency between summa...
LLVM_ABI ModuleSummaryIndex buildModuleSummaryIndex(const Module &M, std::function< BlockFrequencyInfo *(const Function &F)> GetBFICallback, ProfileSummaryInfo *PSI, std::function< const StackSafetyInfo *(const Function &F)> GetSSICallback=[](const Function &F) -> const StackSafetyInfo *{ return nullptr;})
Direct function to compute a ModuleSummaryIndex from a given module.
LLVM_ABI ModulePass * createModuleSummaryIndexWrapperPass()
LLVM_ABI ImmutablePass * createImmutableModuleSummaryIndexWrapperPass(const ModuleSummaryIndex *Index)
AnalysisManager< Module > ModuleAnalysisManager
Convenience typedef for the Module analysis manager.
A CRTP mix-in that provides informational APIs needed for analysis passes.
A special type used by analysis passes to provide an address that identifies that particular analysis...