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"
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");
This class represents lattice values for constants.
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)
raw_ostream & printEdgeProbability(raw_ostream &OS, const MachineBasicBlock *Src, const MachineBasicBlock *Dst) const
block Block Frequency true
iterator_range< succ_iterator > successors()
machine branch Machine Branch Probability Analysis
Printable printMBBReference(const MachineBasicBlock &MBB)
Prints a machine basic block reference.
MachineBasicBlock * getHotSucc(MachineBasicBlock *MBB) const
INITIALIZE_PASS_BEGIN(MachineBranchProbabilityInfo, "machine-branch-prob", "Machine Branch Probability Analysis", false, true) INITIALIZE_PASS_END(MachineBranchProbabilityInfo
COFF::MachineTypes Machine
return !LiveInRegUnits available(Reg)
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)
static GCRegistry::Add< CoreCLRGC > E("coreclr", "CoreCLR-compatible GC")
std::vector< MachineBasicBlock * >::const_iterator const_succ_iterator
succ_iterator succ_begin()
auto find(R &&Range, const T &Val) -> decltype(adl_begin(Range))
Provide wrappers to std::find which take ranges instead of having to pass begin/end explicitly...
INITIALIZE_PASS_END(RegBankSelect, DEBUG_TYPE, "Assign register bank of generic virtual registers", false, false) RegBankSelect
BranchProbability getEdgeProbability(const MachineBasicBlock *Src, const MachineBasicBlock *Dst) const
pgo instr Read PGO instrumentation profile
bool isEdgeHot(const MachineBasicBlock *Src, const MachineBasicBlock *Dst) const
This class implements an extremely fast bulk output stream that can only output to a stream...
static BranchProbability getZero()