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)

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)

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)

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)

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()

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()

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)

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()

Declared at: llvm/include/llvm/Bitcode/BitcodeWriter.h:52