Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(343)

Unified Diff: include/llvm/Bitcode/NaCl/NaClBitcodeAnalyzer.h

Issue 939073008: Rebased PNaCl localmods in LLVM to 223109 (Closed)
Patch Set: undo localmod Created 5 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: include/llvm/Bitcode/NaCl/NaClBitcodeAnalyzer.h
diff --git a/include/llvm/Bitcode/NaCl/NaClBitcodeAnalyzer.h b/include/llvm/Bitcode/NaCl/NaClBitcodeAnalyzer.h
new file mode 100644
index 0000000000000000000000000000000000000000..d93f7aa4071125192470fe5309d921c97b3f2ec9
--- /dev/null
+++ b/include/llvm/Bitcode/NaCl/NaClBitcodeAnalyzer.h
@@ -0,0 +1,66 @@
+//===-- NaClBitcodeAnalyzer.h - Bitcode Analyzer --------------------------===//
+//
+// The LLVM Compiler Infrastructure
+//
+// This file is distributed under the University of Illinois Open Source
+// License. See LICENSE.TXT for details.
+//
+// Analytical information about a bitcode file. Intended as an aid to developers
+// of bitcode reading and writing software. It produces a summary of the bitcode
+// file that shows various statistics about the contents of the file. By default
+// this information is detailed and contains information about individual
+// bitcode blocks and the functions in the module. The tool is also able to
+// print a bitcode file in a straight forward text format that shows the
+// containment and relationships of the information in the bitcode file (-dump
+// option).
+//
+//===----------------------------------------------------------------------===//
+
+#ifndef NACL_BITCODE_ANALYZER_H
+#define NACL_BITCODE_ANALYZER_H
+
+#include <memory>
+
+namespace llvm {
+
+class MemoryBuffer;
+class StringRef;
+class raw_ostream;
+
+// Analysis options. See the command-line documentation in pnacl-bcanalyzer
+// for a description.
+struct AnalysisDumpOptions {
+ AnalysisDumpOptions()
+ : DumpRecords(false), DumpDetails(false), OpsPerLine(0)
+ {}
+
+ // When true, dump the records. When false, print out distribution
+ // statistics.
+ bool DumpRecords;
+
+ // When true, print out abbreviations, abbreviation ID's, and
+ // other (non-record specific) details when dumping records.
+ bool DumpDetails;
+
+ // The number of record operands to be dumped per text line.
+ unsigned OpsPerLine;
+
+ // When true, prints block statistics based on block ID rather than
+ // size. When false, prints block statistics base on percentage of
+ // file.
+ bool OrderBlocksByID;
+};
+
+/// Run analysis on the given file. Output goes to OS.
+int AnalyzeBitcodeInFile(const StringRef &InputFilename, raw_ostream &OS,
+ const AnalysisDumpOptions &DumpOptions);
+
+/// Run analysis on a memory buffer with bitcode. Output goes to
+/// OS. The buffer is owned by the caller.
+int AnalyzeBitcodeInBuffer(const std::unique_ptr<MemoryBuffer> &Buf,
+ raw_ostream &OS,
+ const AnalysisDumpOptions &DumpOptions);
+
+} // namespace llvm
+
+#endif
« no previous file with comments | « include/llvm/Bitcode/NaCl/NaClBitcodeAbbrevDist.h ('k') | include/llvm/Bitcode/NaCl/NaClBitcodeBitsAndAbbrevsDist.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698