push bytecode decompressor out through APIs. Now the bytecode reader
authorChris Lattner <sabre@nondot.org>
Wed, 7 Feb 2007 21:41:02 +0000 (21:41 +0000)
committerChris Lattner <sabre@nondot.org>
Wed, 7 Feb 2007 21:41:02 +0000 (21:41 +0000)
commitf2e292ce58ca07d9bbe3cad75f8baa35bd85964a
treed3bc0114e2f71983baef4c33631278640cd7a1cd
parent403e4a4725af21c267d4189fe88bc48bd438b08c
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.

git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@34012 91177308-0d34-0410-b5e6-96231b3b80d8
25 files changed:
include/llvm/Bytecode/Analyzer.h
include/llvm/Bytecode/Archive.h
include/llvm/Bytecode/Reader.h
lib/Archive/Archive.cpp
lib/Archive/ArchiveReader.cpp
lib/Archive/ArchiveWriter.cpp
lib/Bytecode/Archive/Archive.cpp
lib/Bytecode/Archive/ArchiveReader.cpp
lib/Bytecode/Archive/ArchiveWriter.cpp
lib/Bytecode/Reader/Reader.cpp
lib/Bytecode/Reader/Reader.h
lib/Bytecode/Reader/ReaderWrappers.cpp
lib/Linker/Linker.cpp
tools/bugpoint/BugDriver.cpp
tools/llc/llc.cpp
tools/lli/lli.cpp
tools/llvm-bcanalyzer/llvm-bcanalyzer.cpp
tools/llvm-dis/llvm-dis.cpp
tools/llvm-extract/llvm-extract.cpp
tools/llvm-link/llvm-link.cpp
tools/llvm-nm/llvm-nm.cpp
tools/llvm-prof/llvm-prof.cpp
tools/llvm2cpp/llvm2cpp.cpp
tools/llvmc/CompilerDriver.cpp
tools/opt/opt.cpp