class BitcodeWriter
Declaration
class BitcodeWriter { /* full declaration omitted */ };
Declared at: llvm/include/llvm/Bitcode/BitcodeWriter.h:32
Method Overview
- public BitcodeWriter(SmallVectorImpl<char> & Buffer)
- public void copyStrtab(llvm::StringRef Strtab)
- public void writeIndex(const llvm::ModuleSummaryIndex * Index, const std::map<std::string, GVSummaryMapTy> * ModuleToSummariesForIndex)
- public void writeModule(const llvm::Module & M, bool ShouldPreserveUseListOrder = false, const llvm::ModuleSummaryIndex * Index = nullptr, bool GenerateHash = false, llvm::ModuleHash * ModHash = nullptr)
- public void writeStrtab()
- public void writeSymtab()
- public void writeThinLinkBitcode(const llvm::Module & M, const llvm::ModuleSummaryIndex & Index, const llvm::ModuleHash & ModHash)
- public ~BitcodeWriter()
Methods
¶BitcodeWriter(SmallVectorImpl<char>& Buffer)
BitcodeWriter(SmallVectorImpl<char>& Buffer)
Description
Create a BitcodeWriter that writes to Buffer.
Declared at: llvm/include/llvm/Bitcode/BitcodeWriter.h:50
Parameters
- SmallVectorImpl<char>& Buffer
¶void copyStrtab(llvm::StringRef Strtab)
void copyStrtab(llvm::StringRef Strtab)
Description
Copy the string table for another module into this bitcode file. This should be called after copying the module itself into the bitcode file.
Declared at: llvm/include/llvm/Bitcode/BitcodeWriter.h:69
Parameters
- llvm::StringRef Strtab
¶void writeIndex(
const llvm::ModuleSummaryIndex* Index,
const std::map<std::string, GVSummaryMapTy>*
ModuleToSummariesForIndex)
void writeIndex(
const llvm::ModuleSummaryIndex* Index,
const std::map<std::string, GVSummaryMapTy>*
ModuleToSummariesForIndex)
Declared at: llvm/include/llvm/Bitcode/BitcodeWriter.h:103
Parameters
- const llvm::ModuleSummaryIndex* Index
- const std::map<std::string, GVSummaryMapTy>* ModuleToSummariesForIndex
¶void writeModule(
const llvm::Module& M,
bool ShouldPreserveUseListOrder = false,
const llvm::ModuleSummaryIndex* Index =
nullptr,
bool GenerateHash = false,
llvm::ModuleHash* ModHash = nullptr)
void writeModule(
const llvm::Module& M,
bool ShouldPreserveUseListOrder = false,
const llvm::ModuleSummaryIndex* Index =
nullptr,
bool GenerateHash = false,
llvm::ModuleHash* ModHash = nullptr)
Description
Write the specified module to the buffer specified at construction time. If \c ShouldPreserveUseListOrder, encode the use-list order for each \a Value in \c M. These will be reconstructed exactly when \a M is deserialized. If \c Index is supplied, the bitcode will contain the summary index (currently for use in ThinLTO optimization). \p GenerateHash enables hashing the Module and including the hash in the bitcode (currently for use in ThinLTO incremental build). If \p ModHash is non-null, when GenerateHash is true, the resulting hash is written into ModHash. When GenerateHash is false, that value is used as the hash instead of computing from the generated bitcode. Can be used to produce the same module hash for a minimized bitcode used just for the thin link as in the regular full bitcode that will be used in the backend.
Declared at: llvm/include/llvm/Bitcode/BitcodeWriter.h:89
Parameters
- const llvm::Module& M
- bool ShouldPreserveUseListOrder = false
- const llvm::ModuleSummaryIndex* Index = nullptr
- bool GenerateHash = false
- llvm::ModuleHash* ModHash = nullptr
¶void writeStrtab()
void writeStrtab()
Description
Write the bitcode file's string table. This must be called exactly once after all modules and the optional symbol table have been written.
Declared at: llvm/include/llvm/Bitcode/BitcodeWriter.h:65
¶void writeSymtab()
void writeSymtab()
Description
Attempt to write a symbol table to the bitcode file. This must be called at most once after all modules have been written. A reader does not require a symbol table to interpret a bitcode file; the symbol table is needed only to improve link-time performance. So this function may decide not to write a symbol table. It may so decide if, for example, the target is unregistered or the IR is malformed.
Declared at: llvm/include/llvm/Bitcode/BitcodeWriter.h:61
¶void writeThinLinkBitcode(
const llvm::Module& M,
const llvm::ModuleSummaryIndex& Index,
const llvm::ModuleHash& ModHash)
void writeThinLinkBitcode(
const llvm::Module& M,
const llvm::ModuleSummaryIndex& Index,
const llvm::ModuleHash& ModHash)
Description
Write the specified thin link bitcode file (i.e., the minimized bitcode file) to the buffer specified at construction time. The thin link bitcode file is used for thin link, and it only contains the necessary information for thin link. ModHash is for use in ThinLTO incremental build, generated while the IR bitcode file writing.
Declared at: llvm/include/llvm/Bitcode/BitcodeWriter.h:100
Parameters
- const llvm::Module& M
- const llvm::ModuleSummaryIndex& Index
- const llvm::ModuleHash& ModHash
¶~BitcodeWriter()
~BitcodeWriter()
Declared at: llvm/include/llvm/Bitcode/BitcodeWriter.h:52