23 "Machine Branch Probability Analysis",
false,
true)
29 cl::desc("branch probability threshold in percentage"
30 "to be considered very likely"),
35 cl::desc("branch probability threshold in percentage to be considered"
36 " very likely when
profile is available"),
37 cl::init(51), cl::Hidden);
39 char MachineBranchProbabilityInfo::
ID = 0;
41 void MachineBranchProbabilityInfo::anchor() {}
46 return Src->getSuccProbability(Dst);
88 <<
" probability is " << Prob
89 << (
isEdgeHot(Src, Dst) ?
" [HOT edge]\n" :
"\n");
int getNumber() const
MachineBasicBlocks are uniquely numbered at the function level, unless they're not in a MachineFuncti...
INITIALIZE_PASS_BEGIN(MachineBranchProbabilityInfo,"machine-branch-prob","Machine Branch Probability Analysis", false, true) INITIALIZE_PASS_END(MachineBranchProbabilityInfo
iterator_range< succ_iterator > successors()
machine branch Machine Branch Probability false
machine branch Machine Branch Probability Analysis
machine branch Machine Branch Probability true cl::opt< unsigned > StaticLikelyProb("static-likely-prob", cl::desc("branch probability threshold in percentage""to be considered very likely"), cl::init(80), cl::Hidden)
COFF::MachineTypes Machine
static GCRegistry::Add< CoreCLRGC > E("coreclr","CoreCLR-compatible GC")
initializer< Ty > init(const Ty &Val)
cl::opt< unsigned > ProfileLikelyProb("profile-likely-prob", cl::desc("branch probability threshold in percentage to be considered"" very likely when profile is available"), cl::init(51), cl::Hidden)
INITIALIZE_PASS_END(RegBankSelect, DEBUG_TYPE,"Assign register bank of generic virtual registers", false, false) RegBankSelect
succ_iterator succ_begin()
auto find(R &&Range, const T &Val) -> decltype(std::begin(Range))
Provide wrappers to std::find which take ranges instead of having to pass begin/end explicitly...
MachineBasicBlock * getHotSucc(MachineBasicBlock *MBB) const
pgo instr Read PGO instrumentation profile
bool isEdgeHot(const MachineBasicBlock *Src, const MachineBasicBlock *Dst) const
std::vector< MachineBasicBlock * >::const_iterator const_succ_iterator
This class implements an extremely fast bulk output stream that can only output to a stream...
raw_ostream & printEdgeProbability(raw_ostream &OS, const MachineBasicBlock *Src, const MachineBasicBlock *Dst) const
static BranchProbability getZero()
BranchProbability getEdgeProbability(const MachineBasicBlock *Src, const MachineBasicBlock *Dst) const