blob: a8bb6db4830c6af106bdd282cd1e7d4f4fae9972 [file] [log] [blame] [edit]
//===- NaClBitcodeBitsDist.cpp ----------------------------------*- C++ -*-===//
// Implements distributions of values with the corresponding number
// of bits in PNaCl bitcode.
//
// The LLVM Compiler Infrastructure
//
// This file is distributed under the University of Illinois Open Source
// License. See LICENSE.TXT for details.
//
//===----------------------------------------------------------------------===//
#include "llvm/Bitcode/NaCl/NaClBitcodeBitsDist.h"
using namespace llvm;
NaClBitcodeBitsDistElement::~NaClBitcodeBitsDistElement() {}
void NaClBitcodeBitsDistElement::AddRecord(const NaClBitcodeRecord &Record) {
NaClBitcodeDistElement::AddRecord(Record);
TotalBits += Record.GetNumBits();
}
void NaClBitcodeBitsDistElement::AddBlock(const NaClBitcodeBlock &Block) {
NaClBitcodeDistElement::AddBlock(Block);
TotalBits += Block.GetLocalNumBits();
}
void NaClBitcodeBitsDistElement::PrintStatsHeader(raw_ostream &Stream) const {
NaClBitcodeDistElement::PrintStatsHeader(Stream);
Stream << " # Bits Bits/Elmt";
}
void NaClBitcodeBitsDistElement::
PrintRowStats(raw_ostream &Stream,
const NaClBitcodeDist *Distribution) const {
NaClBitcodeDistElement::PrintRowStats(Stream, Distribution);
Stream << format(" %9lu %12.2f",
(unsigned long) GetTotalBits(),
(double) GetTotalBits()/GetNumInstances());
}