BranchProbability.cpp revision 223017
1136384Srwatson//===-------------- lib/Support/BranchProbability.cpp -----------*- C++ -*-===// 2136384Srwatson// 3136384Srwatson// The LLVM Compiler Infrastructure 4136384Srwatson// 5136384Srwatson// This file is distributed under the University of Illinois Open Source 6136384Srwatson// License. See LICENSE.TXT for details. 7136384Srwatson// 8136384Srwatson//===----------------------------------------------------------------------===// 9136384Srwatson// 10136384Srwatson// This file implements Branch Probability class. 11136384Srwatson// 12136384Srwatson//===----------------------------------------------------------------------===// 13136384Srwatson 14136384Srwatson#include "llvm/Support/BranchProbability.h" 15136384Srwatson#include "llvm/Support/Debug.h" 16136384Srwatson#include "llvm/Support/raw_ostream.h" 17136384Srwatson 18136384Srwatsonusing namespace llvm; 19136384Srwatson 20136384SrwatsonBranchProbability::BranchProbability(uint32_t n, uint32_t d) { 21136384Srwatson assert(d > 0 && "Denomiator cannot be 0!"); 22136384Srwatson assert(n <= d && "Probability cannot be bigger than 1!"); 23136384Srwatson N = n; 24136384Srwatson D = d; 25136384Srwatson} 26136384Srwatson 27136384Srwatsonraw_ostream &BranchProbability::print(raw_ostream &OS) const { 28136384Srwatson OS << N << " / " << D << " = " << ((double)N / D); 29136384Srwatson return OS; 30136384Srwatson} 31136384Srwatson 32136384Srwatsonvoid BranchProbability::dump() const { 33136384Srwatson print(dbgs()); 34136384Srwatson dbgs() << "\n"; 35136384Srwatson} 36136384Srwatson 37136384Srwatsonnamespace llvm { 38136384Srwatson 39136384Srwatsonraw_ostream &operator<<(raw_ostream &OS, const BranchProbability &Prob) { 40136384Srwatson Prob.print(OS); 41136384Srwatson return OS; 42136384Srwatson} 43136384Srwatson 44136384Srwatson} 45136384Srwatson