23 "Machine Branch Probability Analysis",
false,
true)
27 char MachineBranchProbabilityInfo::
ID = 0;
29 void MachineBranchProbabilityInfo::anchor() { }
46 if (Sum <= UINT32_MAX)
51 assert((Sum / UINT32_MAX) < UINT32_MAX);
52 Scale = (Sum / UINT32_MAX) + 1;
57 Sum += Weight / Scale;
59 assert(Sum <= UINT32_MAX);
66 uint32_t Weight = Src->getSuccWeight(Dst);
68 return DEFAULT_WEIGHT;
89 uint32_t MaxWeight = 0;
94 if (Weight > MaxWeight) {
122 <<
" probability is " << Prob
123 << (
isEdgeHot(Src, Dst) ?
" [HOT edge]\n" :
"\n");
unsigned succ_size() const
INITIALIZE_PASS_BEGIN(MachineBranchProbabilityInfo,"machine-branch-prob","Machine Branch Probability Analysis", false, true) INITIALIZE_PASS_END(MachineBranchProbabilityInfo
machine branch Machine Branch Probability false
machine branch Machine Branch Probability Analysis
#define INITIALIZE_PASS_END(passName, arg, name, cfg, analysis)
BranchProbability getEdgeProbability(MachineBasicBlock *Src, MachineBasicBlock *Dst) const
ID
LLVM Calling Convention Representation.
COFF::MachineTypes Machine
succ_iterator succ_begin()
bool isEdgeHot(MachineBasicBlock *Src, MachineBasicBlock *Dst) const
MachineBasicBlock * getHotSucc(MachineBasicBlock *MBB) const
uint32_t getSumForBlock(const MachineBasicBlock *MBB, uint32_t &Scale) const
raw_ostream & printEdgeProbability(raw_ostream &OS, MachineBasicBlock *Src, MachineBasicBlock *Dst) const
uint32_t getEdgeWeight(const MachineBasicBlock *Src, const MachineBasicBlock *Dst) const
std::vector< MachineBasicBlock * >::const_iterator const_succ_iterator