Two Changes:
- Pass the output stream to the analyzer so it can write its output there
directly instead of buffering it.
- Don't pass a boolean to ParseBytecode because its not needed any more.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@15983 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/Bytecode/Reader/ReaderWrappers.cpp b/lib/Bytecode/Reader/ReaderWrappers.cpp
index a6983d0..7a37d39 100644
--- a/lib/Bytecode/Reader/ReaderWrappers.cpp
+++ b/lib/Bytecode/Reader/ReaderWrappers.cpp
@@ -58,7 +58,7 @@
try {
// Parse the bytecode we mmapped in
- ParseBytecode(Buffer, Length, Filename, H != 0);
+ ParseBytecode(Buffer, Length, Filename);
} catch (...) {
UnmapFileFromAddressSpace(Buffer, Length);
throw;
@@ -114,7 +114,7 @@
MustDelete = false;
}
try {
- ParseBytecode(ParseBegin, Length, ModuleID, H != 0);
+ ParseBytecode(ParseBegin, Length, ModuleID);
} catch (...) {
if (MustDelete) delete [] Buffer;
throw;
@@ -163,7 +163,7 @@
throw std::string("Standard Input empty!");
FileBuf = &FileData[0];
- ParseBytecode(FileBuf, FileData.size(), "<stdin>", H != 0 );
+ ParseBytecode(FileBuf, FileData.size(), "<stdin>");
}
//===----------------------------------------------------------------------===//
@@ -292,12 +292,15 @@
}
// AnalyzeBytecodeFile - analyze one file
-Module* llvm::AnalyzeBytecodeFile(const std::string &Filename,
- BytecodeAnalysis& bca,
- std::string *ErrorStr)
+Module* llvm::AnalyzeBytecodeFile(
+ const std::string &Filename, ///< File to analyze
+ BytecodeAnalysis& bca, ///< Statistical output
+ std::string *ErrorStr, ///< Error output
+ std::ostream* output ///< Dump output
+)
{
try {
- BytecodeHandler* analyzerHandler = createBytecodeAnalyzerHandler(bca);
+ BytecodeHandler* analyzerHandler = createBytecodeAnalyzerHandler(bca,output);
std::auto_ptr<ModuleProvider> AMP(
getBytecodeModuleProvider(Filename,analyzerHandler));
return AMP->releaseModule();
@@ -309,15 +312,16 @@
// AnalyzeBytecodeBuffer - analyze a buffer
Module* llvm::AnalyzeBytecodeBuffer(
- const unsigned char* Buffer, ///< Pointer to start of bytecode buffer
- unsigned Length, ///< Size of the bytecode buffer
- const std::string& ModuleID, ///< Identifier for the module
- BytecodeAnalysis& bca, ///< The results of the analysis
- std::string* ErrorStr ///< Errors, if any.
- )
+ const unsigned char* Buffer, ///< Pointer to start of bytecode buffer
+ unsigned Length, ///< Size of the bytecode buffer
+ const std::string& ModuleID, ///< Identifier for the module
+ BytecodeAnalysis& bca, ///< The results of the analysis
+ std::string* ErrorStr, ///< Errors, if any.
+ std::ostream* output ///< Dump output, if any
+)
{
try {
- BytecodeHandler* hdlr = createBytecodeAnalyzerHandler(bca);
+ BytecodeHandler* hdlr = createBytecodeAnalyzerHandler(bca, output);
std::auto_ptr<ModuleProvider>
AMP(getBytecodeBufferModuleProvider(Buffer, Length, ModuleID, hdlr));
return AMP->releaseModule();