1f289df2d9544bd3a0934651daa20e589544413baAndrew Trick//===-------------- lib/Support/BranchProbability.cpp -----------*- C++ -*-===// 2f289df2d9544bd3a0934651daa20e589544413baAndrew Trick// 3f289df2d9544bd3a0934651daa20e589544413baAndrew Trick// The LLVM Compiler Infrastructure 4f289df2d9544bd3a0934651daa20e589544413baAndrew Trick// 5f289df2d9544bd3a0934651daa20e589544413baAndrew Trick// This file is distributed under the University of Illinois Open Source 6f289df2d9544bd3a0934651daa20e589544413baAndrew Trick// License. See LICENSE.TXT for details. 7f289df2d9544bd3a0934651daa20e589544413baAndrew Trick// 8f289df2d9544bd3a0934651daa20e589544413baAndrew Trick//===----------------------------------------------------------------------===// 9f289df2d9544bd3a0934651daa20e589544413baAndrew Trick// 10f289df2d9544bd3a0934651daa20e589544413baAndrew Trick// This file implements Branch Probability class. 11f289df2d9544bd3a0934651daa20e589544413baAndrew Trick// 12f289df2d9544bd3a0934651daa20e589544413baAndrew Trick//===----------------------------------------------------------------------===// 13f289df2d9544bd3a0934651daa20e589544413baAndrew Trick 14f289df2d9544bd3a0934651daa20e589544413baAndrew Trick#include "llvm/Support/BranchProbability.h" 15f289df2d9544bd3a0934651daa20e589544413baAndrew Trick#include "llvm/Support/Debug.h" 1696f1d854036a13fd370a748a512931bd70d24064Benjamin Kramer#include "llvm/Support/Format.h" 17f289df2d9544bd3a0934651daa20e589544413baAndrew Trick#include "llvm/Support/raw_ostream.h" 18f289df2d9544bd3a0934651daa20e589544413baAndrew Trick 19f289df2d9544bd3a0934651daa20e589544413baAndrew Trickusing namespace llvm; 20f289df2d9544bd3a0934651daa20e589544413baAndrew Trick 2115b35677d0d49078658e87451dc5321bb95d4034Jakub Staszakvoid BranchProbability::print(raw_ostream &OS) const { 2296f1d854036a13fd370a748a512931bd70d24064Benjamin Kramer OS << N << " / " << D << " = " << format("%g%%", ((double)N / D) * 100.0); 23f289df2d9544bd3a0934651daa20e589544413baAndrew Trick} 24f289df2d9544bd3a0934651daa20e589544413baAndrew Trick 25f289df2d9544bd3a0934651daa20e589544413baAndrew Trickvoid BranchProbability::dump() const { 2696f1d854036a13fd370a748a512931bd70d24064Benjamin Kramer dbgs() << *this << '\n'; 27f289df2d9544bd3a0934651daa20e589544413baAndrew Trick} 28f289df2d9544bd3a0934651daa20e589544413baAndrew Trick 29f289df2d9544bd3a0934651daa20e589544413baAndrew Tricknamespace llvm { 30f289df2d9544bd3a0934651daa20e589544413baAndrew Trick 31f289df2d9544bd3a0934651daa20e589544413baAndrew Trickraw_ostream &operator<<(raw_ostream &OS, const BranchProbability &Prob) { 32f289df2d9544bd3a0934651daa20e589544413baAndrew Trick Prob.print(OS); 33f289df2d9544bd3a0934651daa20e589544413baAndrew Trick return OS; 34f289df2d9544bd3a0934651daa20e589544413baAndrew Trick} 35f289df2d9544bd3a0934651daa20e589544413baAndrew Trick 36f289df2d9544bd3a0934651daa20e589544413baAndrew Trick} 37