From e6df25cbcde03b9604e7b5a1b37f411256d27823 Mon Sep 17 00:00:00 2001 From: Reid Spencer Date: Sat, 21 Aug 2004 20:40:08 +0000 Subject: [PATCH] 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 --- include/llvm/Bytecode/Analyzer.h | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/include/llvm/Bytecode/Analyzer.h b/include/llvm/Bytecode/Analyzer.h index 6ce3a394ccb..041f35acfc5 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 BlockSizeMap; + typedef std::map + BlockSizeMap; BlockSizeMap BlockSizes; /// A structure that contains various pieces of information related to @@ -90,14 +94,10 @@ struct BytecodeAnalysis { /// the function. std::map 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