push bytecode decompressor out through APIs. Now the bytecode reader

api's look like this:

ModuleProvider *getBytecodeModuleProvider(
  const std::string &Filename,  ///< Name of file to be read
  BCDecompressor_t *BCDC = Compressor::decompressToNewBuffer,
  std::string* ErrMsg = 0,      ///< Optional error message holder
  BytecodeHandler* H = 0        ///< Optional handler for reader events
);

This is ugly, but allows a client to say:

  getBytecodeModuleProvider("foo", 0);

If they do this, there is no dependency on the compression libraries, saving
codesize.

llvm-svn: 34012
This commit is contained in:
Chris Lattner
2007-02-07 21:41:02 +00:00
parent cca9b1d768
commit a0e49f2ead
22 changed files with 123 additions and 94 deletions

View File

@@ -49,7 +49,9 @@ int main(int argc, char **argv) {
int exitCode = 0;
std::ostream *Out = 0;
std::string ErrorMessage;
std::auto_ptr<Module> M(ParseBytecodeFile(InputFilename, &ErrorMessage));
std::auto_ptr<Module> M(ParseBytecodeFile(InputFilename,
Compressor::decompressToNewBuffer,
&ErrorMessage));
if (M.get() == 0) {
std::cerr << argv[0] << ": ";
if (ErrorMessage.size())