| 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
|
|
|