diff --git a/include/llvm/CodeGen/MachineBranchProbabilityInfo.h b/include/llvm/CodeGen/MachineBranchProbabilityInfo.h index f3b3e0e687c..d9673e2197c 100644 --- a/include/llvm/CodeGen/MachineBranchProbabilityInfo.h +++ b/include/llvm/CodeGen/MachineBranchProbabilityInfo.h @@ -22,6 +22,7 @@ namespace llvm { class raw_ostream; +class MachineBasicBlock; class MachineBranchProbabilityInfo : public ImmutablePass { diff --git a/include/llvm/Support/BranchProbability.h b/include/llvm/Support/BranchProbability.h index c66d2248866..2e81490ebf6 100644 --- a/include/llvm/Support/BranchProbability.h +++ b/include/llvm/Support/BranchProbability.h @@ -18,20 +18,10 @@ namespace llvm { -template -class BlockFrequencyImpl; -class BranchProbabilityInfo; -class MachineBranchProbabilityInfo; -class MachineBasicBlock; class raw_ostream; // This class represents Branch Probability as a non-negative fraction. class BranchProbability { - template - friend class BlockFrequencyImpl; - friend class BranchProbabilityInfo; - friend class MachineBranchProbabilityInfo; - friend class MachineBasicBlock; // Numerator uint32_t N; @@ -39,12 +29,16 @@ class BranchProbability { // Denominator uint32_t D; - BranchProbability(uint32_t n, uint32_t d); - public: + BranchProbability(uint32_t n, uint32_t d); uint32_t getNumerator() const { return N; } uint32_t getDenominator() const { return D; } + + // Return (1 - Probability). + BranchProbability getCompl() { + return BranchProbability(D - N, D); + } raw_ostream &print(raw_ostream &OS) const;