LLVM 22.0.0git
|
Represents a module in a bitcode file. More...
#include "llvm/Bitcode/BitcodeReader.h"
Public Member Functions | |
StringRef | getBuffer () const |
StringRef | getStrtab () const |
StringRef | getModuleIdentifier () const |
LLVM_ABI Expected< std::unique_ptr< Module > > | getLazyModule (LLVMContext &Context, bool ShouldLazyLoadMetadata, bool IsImporting, ParserCallbacks Callbacks={}) |
Read the bitcode module and prepare for lazy deserialization of function bodies. | |
LLVM_ABI Expected< std::unique_ptr< Module > > | parseModule (LLVMContext &Context, ParserCallbacks Callbacks={}) |
Read the entire bitcode module and return it. | |
LLVM_ABI Expected< BitcodeLTOInfo > | getLTOInfo () |
Returns information about the module to be used for LTO: whether to compile with ThinLTO, and whether it has a summary. | |
LLVM_ABI Expected< std::unique_ptr< ModuleSummaryIndex > > | getSummary () |
Parse the specified bitcode buffer, returning the module summary index. | |
LLVM_ABI Error | readSummary (ModuleSummaryIndex &CombinedIndex, StringRef ModulePath, std::function< bool(GlobalValue::GUID)> IsPrevailing=nullptr) |
Parse the specified bitcode buffer and merge its module summary index into CombinedIndex. | |
Friends | |
LLVM_ABI friend Expected< BitcodeFileContents > | getBitcodeFileContents (MemoryBufferRef Buffer) |
Returns the contents of a bitcode file. | |
Represents a module in a bitcode file.
Definition at line 103 of file BitcodeReader.h.
|
inline |
Definition at line 132 of file BitcodeReader.h.
References llvm::ArrayRef< T >::begin(), and llvm::ArrayRef< T >::size().
Expected< std::unique_ptr< Module > > BitcodeModule::getLazyModule | ( | LLVMContext & | Context, |
bool | ShouldLazyLoadMetadata, | ||
bool | IsImporting, | ||
ParserCallbacks | Callbacks = {} |
||
) |
Read the bitcode module and prepare for lazy deserialization of function bodies.
If ShouldLazyLoadMetadata is true, lazily load metadata as well. If IsImporting is true, this module is being parsed for ThinLTO importing into another module.
Definition at line 8526 of file BitcodeReader.cpp.
References Context.
Expected< BitcodeLTOInfo > BitcodeModule::getLTOInfo | ( | ) |
Returns information about the module to be used for LTO: whether to compile with ThinLTO, and whether it has a summary.
Definition at line 8616 of file BitcodeReader.cpp.
References llvm::BitstreamCursor::advance(), llvm::BitcodeLTOInfo::EnableSplitLTOUnit, llvm::BitstreamEntry::EndBlock, llvm::BitstreamCursor::EnterSubBlock(), llvm::BitstreamEntry::Error, error, llvm::bitc::FULL_LTO_GLOBALVAL_SUMMARY_BLOCK_ID, getEnableSplitLTOUnitAndUnifiedFlag(), llvm::bitc::GLOBALVAL_SUMMARY_BLOCK_ID, llvm::BitcodeLTOInfo::HasSummary, llvm::BitcodeLTOInfo::IsThinLTO, llvm::BitstreamCursor::JumpToBit(), llvm::bitc::MODULE_BLOCK_ID, llvm::BitstreamEntry::Record, llvm::BitstreamCursor::SkipBlock(), llvm::BitstreamCursor::skipRecord(), llvm::BitstreamEntry::SubBlock, and llvm::BitcodeLTOInfo::UnifiedLTO.
|
inline |
Definition at line 138 of file BitcodeReader.h.
Referenced by llvm::cgdata::loadModuleForTwoRounds().
|
inline |
Definition at line 136 of file BitcodeReader.h.
Expected< std::unique_ptr< ModuleSummaryIndex > > BitcodeModule::getSummary | ( | ) |
Parse the specified bitcode buffer, returning the module summary index.
Definition at line 8549 of file BitcodeReader.cpp.
References llvm::BitstreamCursor::JumpToBit().
Expected< std::unique_ptr< Module > > BitcodeModule::parseModule | ( | LLVMContext & | Context, |
ParserCallbacks | Callbacks = {} |
||
) |
Read the entire bitcode module and return it.
Definition at line 8709 of file BitcodeReader.cpp.
References Context.
Error BitcodeModule::readSummary | ( | ModuleSummaryIndex & | CombinedIndex, |
StringRef | ModulePath, | ||
std::function< bool(GlobalValue::GUID)> | IsPrevailing = nullptr |
||
) |
Parse the specified bitcode buffer and merge its module summary index into CombinedIndex.
Definition at line 8536 of file BitcodeReader.cpp.
References llvm::BitstreamCursor::JumpToBit().
|
friend |
Returns the contents of a bitcode file.
This includes the raw contents of the symbol table embedded in the bitcode file. Clients which require a symbol table should prefer to use irsymtab::read instead of this function because it creates a reader for the irsymtab and handles upgrading bitcode files without a symbol table or with an old symbol table.