Index: lib/Bitcode/NaCl/Analysis/NaClBitcodeBitsAndAbbrevsDist.cpp |
diff --git a/lib/Bitcode/NaCl/Analysis/NaClBitcodeBitsAndAbbrevsDist.cpp b/lib/Bitcode/NaCl/Analysis/NaClBitcodeBitsAndAbbrevsDist.cpp |
new file mode 100644 |
index 0000000000000000000000000000000000000000..ae1d3cbcffa88ef2b7d5b927caa01c9e0d554c52 |
--- /dev/null |
+++ b/lib/Bitcode/NaCl/Analysis/NaClBitcodeBitsAndAbbrevsDist.cpp |
@@ -0,0 +1,42 @@ |
+//===- NaClBitcodeBitsAndAbbrevsDist.cpp ------------------*- C++ -*-===// |
+// Implements distributions of values with the corresponding |
+// number of bits and percentage of abbreviations used in PNaCl |
+// bitcode records. |
+// |
+// 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/NaClBitcodeBitsAndAbbrevsDist.h" |
+ |
+using namespace llvm; |
+ |
+NaClBitcodeBitsAndAbbrevsDistElement::~NaClBitcodeBitsAndAbbrevsDistElement() {} |
+ |
+void NaClBitcodeBitsAndAbbrevsDistElement:: |
+AddRecord(const NaClBitcodeRecord &Record) { |
+ NaClBitcodeBitsDistElement::AddRecord(Record); |
+ if (Record.UsedAnAbbreviation()) { |
+ ++NumAbbrevs; |
+ } |
+} |
+ |
+void NaClBitcodeBitsAndAbbrevsDistElement:: |
+PrintStatsHeader(raw_ostream &Stream) const { |
+ NaClBitcodeBitsDistElement::PrintStatsHeader(Stream); |
+ Stream << " % Abv"; |
+} |
+ |
+void NaClBitcodeBitsAndAbbrevsDistElement:: |
+PrintRowStats(raw_ostream &Stream, |
+ const NaClBitcodeDist *Distribution) const { |
+ NaClBitcodeBitsDistElement::PrintRowStats(Stream, Distribution); |
+ if (GetNumAbbrevs()) |
+ Stream << format(" %7.2f", |
+ (double) GetNumAbbrevs()/GetNumInstances()*100.0); |
+ else |
+ Stream << " "; |
+} |