24 #define DEBUG_TYPE "lazy-branch-prob" 27 "Lazy Branch Probability Analysis",
true,
true)
33 char LazyBranchProbabilityInfoPass::
ID = 0;
35 LazyBranchProbabilityInfoPass::LazyBranchProbabilityInfoPass()
42 LBPI->getCalculated().print(OS);
58 LoopInfo &LI = getAnalysis<LoopInfoWrapperPass>().getLoopInfo();
60 LBPI = llvm::make_unique<LazyBranchProbabilityInfo>(&
F, &LI, &TLI);
static PassRegistry * getPassRegistry()
getPassRegistry - Access the global registry object, which is automatically initialized at applicatio...
This class represents lattice values for constants.
A Module instance is used to store all the information related to an LLVM module. ...
A global registry used in conjunction with static constructors to make pluggable components (like tar...
void releaseMemory() override
releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memo...
static void getLazyBPIAnalysisUsage(AnalysisUsage &AU)
Helper for client passes to set up the analysis usage on behalf of this pass.
AnalysisUsage & addRequired()
#define INITIALIZE_PASS_DEPENDENCY(depName)
This is an alternative analysis pass to BranchProbabilityInfoWrapperPass.
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...
Lazy Branch Probability Analysis
void initializeLazyBPIPassPass(PassRegistry &Registry)
Helper for client passes to initialize dependent passes for LBPI.
void initializeLazyBranchProbabilityInfoPassPass(PassRegistry &)
bool runOnFunction(Function &F) override
runOnFunction - Virtual method overriden by subclasses to do the per-function processing of the pass...
Represent the analysis usage information of a pass.
FunctionPass class - This class is used to implement most global optimizations.
INITIALIZE_PASS_BEGIN(LazyBranchProbabilityInfoPass, DEBUG_TYPE, "Lazy Branch Probability Analysis", true, true) INITIALIZE_PASS_END(LazyBranchProbabilityInfoPass
INITIALIZE_PASS_END(RegBankSelect, DEBUG_TYPE, "Assign register bank of generic virtual registers", false, false) RegBankSelect
Provides information about what library functions are available for the current target.
void print(raw_ostream &OS, const Module *M) const override
print - Print out the internal state of the pass.
void setPreservesAll()
Set by analyses that do not transform their input at all.
This class implements an extremely fast bulk output stream that can only output to a stream...
The legacy pass manager's analysis pass to compute loop information.
PassRegistry - This class manages the registration and intitialization of the pass subsystem as appli...
Legacy analysis pass which computes a DominatorTree.
Lazy Branch Probability true