Index: lib/Bitcode/NaCl/Analysis/NaClBitcodeBitsDist.cpp |
diff --git a/lib/Bitcode/NaCl/Analysis/NaClBitcodeBitsDist.cpp b/lib/Bitcode/NaCl/Analysis/NaClBitcodeBitsDist.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..a8bb6db4830c6af106bdd282cd1e7d4f4fae9972 |
--- /dev/null |
+++ b/lib/Bitcode/NaCl/Analysis/NaClBitcodeBitsDist.cpp |
@@ -0,0 +1,40 @@ |
+//===- 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()); |
+} |