aboutsummaryrefslogtreecommitdiffstats
path: root/include/llvm/Bytecode
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2004-08-21 20:40:08 +0000
committerReid Spencer <rspencer@reidspencer.com>2004-08-21 20:40:08 +0000
commite6df25cbcde03b9604e7b5a1b37f411256d27823 (patch)
tree40d456efe95d4400813985e34a8e98e8e4b210cd /include/llvm/Bytecode
parent037d732e09e23369c7fe89eb5a325e8d1fb61e91 (diff)
downloadexternal_llvm-e6df25cbcde03b9604e7b5a1b37f411256d27823.zip
external_llvm-e6df25cbcde03b9604e7b5a1b37f411256d27823.tar.gz
external_llvm-e6df25cbcde03b9604e7b5a1b37f411256d27823.tar.bz2
Bytecode Analyzer cleanup:
- don't save the "dump" output, just emit it - record the bc version number - record info about the dependent libraries and target triple - use the correct enumeration as the index on the block size map git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15977 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'include/llvm/Bytecode')
-rw-r--r--include/llvm/Bytecode/Analyzer.h16
1 files changed, 9 insertions, 7 deletions
diff --git a/include/llvm/Bytecode/Analyzer.h b/include/llvm/Bytecode/Analyzer.h
index 6ce3a39..041f35a 100644
--- a/include/llvm/Bytecode/Analyzer.h
+++ b/include/llvm/Bytecode/Analyzer.h
@@ -35,6 +35,7 @@ class Module;
/// @brief Bytecode Analysis results structure
struct BytecodeAnalysis {
std::string ModuleId; ///< Identification of the module
+ unsigned version; ///< The version number of the bytecode file
unsigned byteSize; ///< The size of the bytecode file in bytes
unsigned numTypes; ///< The number of types
unsigned numValues; ///< The number of values
@@ -48,6 +49,8 @@ struct BytecodeAnalysis {
unsigned numCmpctnTables; ///< The number of compaction tables
unsigned numSymTab; ///< The number of symbol tables
unsigned numAlignment; ///< The number of alignment bytes
+ unsigned numLibraries; ///< The number of dependent libraries
+ unsigned libSize; ///< Number of bytes taken by dep libs.
unsigned maxTypeSlot; ///< The maximum slot number for types
unsigned maxValueSlot; ///< The maximum slot number for values
double fileDensity; ///< Density of file (bytes/definition)
@@ -64,7 +67,8 @@ struct BytecodeAnalysis {
unsigned vbrCompBytes; ///< Number of vbr bytes (compressed)
unsigned vbrExpdBytes; ///< Number of vbr bytes (expanded)
- typedef std::map<BytecodeFormat::FileBlockIDs,unsigned> BlockSizeMap;
+ typedef std::map<BytecodeFormat::CompressedBytecodeBlockIdentifiers,unsigned>
+ BlockSizeMap;
BlockSizeMap BlockSizes;
/// A structure that contains various pieces of information related to
@@ -90,14 +94,10 @@ struct BytecodeAnalysis {
/// the function.
std::map<const Function*,BytecodeFunctionInfo> FunctionInfo;
- /// The content of the bytecode dump
- std::string BytecodeDump;
-
/// The content of the progressive verification
std::string VerifyInfo;
/// Flags for what should be done
- bool dumpBytecode; ///< If true, BytecodeDump has contents
bool detailedResults; ///< If true, FunctionInfo has contents
bool progressiveVerify; ///< If true, VerifyInfo has contents
};
@@ -109,7 +109,8 @@ struct BytecodeAnalysis {
Module* AnalyzeBytecodeFile(
const std::string& Filename, ///< The name of the bytecode file to read
BytecodeAnalysis& Results, ///< The results of the analysis
- std::string* ErrorStr = 0 ///< Errors, if any.
+ std::string* ErrorStr = 0, ///< Errors, if any.
+ std::ostream* output = 0 ///< Stream for dump output, if wanted
);
/// This function is an alternate entry point into the bytecode analysis
@@ -122,7 +123,8 @@ Module* AnalyzeBytecodeBuffer(
unsigned BufferSize, ///< Size of the bytecode buffer
const std::string& ModuleID, ///< Identifier for the module
BytecodeAnalysis& Results, ///< The results of the analysis
- std::string* ErrorStr = 0 ///< Errors, if any.
+ std::string* ErrorStr = 0, ///< Errors, if any.
+ std::ostream* output = 0 ///< Stream for dump output, if wanted
);
/// This function prints the contents of rhe BytecodeAnalysis structure in