[llvm-commits] CVS: llvm/lib/Bytecode/Reader/Reader.cpp Reader.h ReaderWrappers.cpp
Chris Lattner
sabre at nondot.org
Wed Feb 7 11:49:17 PST 2007
Changes in directory llvm/lib/Bytecode/Reader:
Reader.cpp updated: 1.233 -> 1.234
Reader.h updated: 1.45 -> 1.46
ReaderWrappers.cpp updated: 1.62 -> 1.63
---
Log message:
Move compressor out of the core Reader.cpp file.
---
Diffs of the changes: (+14 -6)
Reader.cpp | 6 +++---
Reader.h | 4 ++++
ReaderWrappers.cpp | 10 +++++++---
3 files changed, 14 insertions(+), 6 deletions(-)
Index: llvm/lib/Bytecode/Reader/Reader.cpp
diff -u llvm/lib/Bytecode/Reader/Reader.cpp:1.233 llvm/lib/Bytecode/Reader/Reader.cpp:1.234
--- llvm/lib/Bytecode/Reader/Reader.cpp:1.233 Wed Feb 7 00:53:02 2007
+++ llvm/lib/Bytecode/Reader/Reader.cpp Wed Feb 7 13:49:01 2007
@@ -27,7 +27,6 @@
#include "llvm/Bytecode/Format.h"
#include "llvm/Config/alloca.h"
#include "llvm/Support/GetElementPtrTypeIterator.h"
-#include "llvm/Support/Compressor.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringExtras.h"
@@ -1982,6 +1981,7 @@
/// and \p Length parameters.
bool BytecodeReader::ParseBytecode(volatile BufPtr Buf, unsigned Length,
const std::string &ModuleID,
+ Decompressor_t *Decompressor,
std::string* ErrMsg) {
/// We handle errors by
@@ -2021,8 +2021,8 @@
// file's magic number which is not part of the compressed block. Hence,
// the Buf+4 and Length-4. The result goes into decompressedBlock, a data
// member for retention until BytecodeReader is destructed.
- unsigned decompressedLength = Compressor::decompressToNewBuffer(
- (char*)Buf+4,Length-4,decompressedBlock);
+ unsigned decompressedLength =
+ Decompressor((char*)Buf+4,Length-4,decompressedBlock, 0);
// We must adjust the buffer pointers used by the bytecode reader to point
// into the new decompressed block. After decompression, the
Index: llvm/lib/Bytecode/Reader/Reader.h
diff -u llvm/lib/Bytecode/Reader/Reader.h:1.45 llvm/lib/Bytecode/Reader/Reader.h:1.46
--- llvm/lib/Bytecode/Reader/Reader.h:1.45 Tue Feb 6 23:08:39 2007
+++ llvm/lib/Bytecode/Reader/Reader.h Wed Feb 7 13:49:01 2007
@@ -140,12 +140,16 @@
/// @name Methods
/// @{
public:
+
+ typedef size_t Decompressor_t(const char *, size_t, char*&, std::string*);
+
/// @returns true if an error occurred
/// @brief Main interface to parsing a bytecode buffer.
bool ParseBytecode(
volatile BufPtr Buf, ///< Beginning of the bytecode buffer
unsigned Length, ///< Length of the bytecode buffer
const std::string &ModuleID, ///< An identifier for the module constructed.
+ Decompressor_t *Decompressor = 0, ///< Optional decompressor.
std::string* ErrMsg = 0 ///< Optional place for error message
);
Index: llvm/lib/Bytecode/Reader/ReaderWrappers.cpp
diff -u llvm/lib/Bytecode/Reader/ReaderWrappers.cpp:1.62 llvm/lib/Bytecode/Reader/ReaderWrappers.cpp:1.63
--- llvm/lib/Bytecode/Reader/ReaderWrappers.cpp:1.62 Tue Jan 30 14:08:37 2007
+++ llvm/lib/Bytecode/Reader/ReaderWrappers.cpp Wed Feb 7 13:49:01 2007
@@ -18,6 +18,7 @@
#include "llvm/Module.h"
#include "llvm/Instructions.h"
#include "llvm/ADT/StringExtras.h"
+#include "llvm/Support/Compressor.h"
#include "llvm/System/MappedFile.h"
#include "llvm/System/Program.h"
#include <cerrno>
@@ -63,7 +64,8 @@
return true;
}
unsigned char* buffer = reinterpret_cast<unsigned char*>(mapFile.base());
- return ParseBytecode(buffer, mapFile.size(), fileName, ErrMsg);
+ return ParseBytecode(buffer, mapFile.size(), fileName,
+ Compressor::decompressToNewBuffer, ErrMsg);
}
//===----------------------------------------------------------------------===//
@@ -122,7 +124,8 @@
ParseBegin = Buffer = Buf;
MustDelete = false;
}
- if (ParseBytecode(ParseBegin, Length, ModuleID, ErrMsg)) {
+ if (ParseBytecode(ParseBegin, Length, ModuleID,
+ Compressor::decompressToNewBuffer, ErrMsg)) {
if (MustDelete) delete [] Buffer;
return true;
}
@@ -177,7 +180,8 @@
}
FileBuf = &FileData[0];
- if (ParseBytecode(FileBuf, FileData.size(), "<stdin>", ErrMsg))
+ if (ParseBytecode(FileBuf, FileData.size(), "<stdin>",
+ Compressor::decompressToNewBuffer, ErrMsg))
return true;
return false;
}
More information about the llvm-commits
mailing list