LLVM API Documentation
#include <BitcodeReader.h>
Public Member Functions | |
error_code | Error (ErrorType E) |
BitcodeReader (MemoryBuffer *buffer, LLVMContext &C) | |
BitcodeReader (DataStreamer *streamer, LLVMContext &C) | |
~BitcodeReader () | |
void | materializeForwardReferencedFunctions () |
void | FreeState () |
void | setBufferOwned (bool Owned) |
virtual bool | isMaterializable (const GlobalValue *GV) const |
virtual bool | isDematerializable (const GlobalValue *GV) const |
virtual error_code | Materialize (GlobalValue *GV) |
virtual error_code | MaterializeModule (Module *M) |
virtual void | Dematerialize (GlobalValue *GV) |
error_code | ParseBitcodeInto (Module *M) |
Main interface to parsing a bitcode buffer. More... | |
error_code | ParseTriple (std::string &Triple) |
Cheap mechanism to just extract module triple. More... | |
![]() | |
virtual | ~GVMaterializer () |
Static Public Member Functions | |
static uint64_t | decodeSignRotatedValue (uint64_t V) |
Additional Inherited Members | |
![]() | |
GVMaterializer () | |
Definition at line 125 of file BitcodeReader.h.
Definition at line 199 of file BitcodeReader.h.
|
inlineexplicit |
Definition at line 226 of file BitcodeReader.h.
|
inlineexplicit |
Definition at line 232 of file BitcodeReader.h.
|
inline |
Definition at line 238 of file BitcodeReader.h.
References FreeState().
|
static |
decodeSignRotatedValue - Decode a signed value stored with the sign bit in the LSB for dense VBR encoding.
Definition at line 1065 of file BitcodeReader.cpp.
Referenced by ReadWideAPInt().
|
virtual |
Dematerialize - If the given GlobalValue is read in, and if the GVMaterializer supports it, release the memory for the GV, and set it up to be materialized lazily. If the Materializer doesn't support this capability, this method is a noop.
Reimplemented from llvm::GVMaterializer.
Definition at line 3102 of file BitcodeReader.cpp.
References llvm::Function::deleteBody(), llvm::dyn_cast(), and isDematerializable().
|
inline |
Definition at line 222 of file BitcodeReader.h.
Referenced by ParseBitcodeInto(), and ParseTriple().
void BitcodeReader::FreeState | ( | ) |
Definition at line 41 of file BitcodeReader.cpp.
References llvm::BitcodeReaderValueList::clear(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT >::clear(), llvm::BitcodeReaderMDValueList::clear(), and llvm::swap().
Referenced by ~BitcodeReader().
|
virtual |
isDematerializable - True if GV has been materialized and can be dematerialized back to whatever backing store this GVMaterializer uses.
Implements llvm::GVMaterializer.
Definition at line 3095 of file BitcodeReader.cpp.
References llvm::dyn_cast(), and llvm::GlobalValue::isDeclaration().
Referenced by Dematerialize().
|
virtual |
isMaterializable - True if GV can be materialized from whatever backing store this GVMaterializer uses and has not been materialized yet.
Implements llvm::GVMaterializer.
Definition at line 3052 of file BitcodeReader.cpp.
References llvm::GlobalValue::isDeclaration().
|
virtual |
Materialize - make sure the given GlobalValue is fully read.
Implements llvm::GVMaterializer.
Definition at line 3060 of file BitcodeReader.cpp.
References llvm::dyn_cast(), I, llvm::GlobalValue::isMaterializable(), llvm::BitstreamCursor::JumpToBit(), llvm::error_code::success(), llvm::UpgradeIntrinsicCall(), llvm::Value::use_begin(), and llvm::Value::use_end().
Referenced by MaterializeModule().
void BitcodeReader::materializeForwardReferencedFunctions | ( | ) |
Definition at line 34 of file BitcodeReader.cpp.
References F(), and llvm::GlobalValue::Materialize().
|
virtual |
MaterializeModule - make sure the entire Module has been completely read.
Implements llvm::GVMaterializer.
Definition at line 3115 of file BitcodeReader.cpp.
References llvm::Module::begin(), llvm::Module::end(), llvm::Instruction::eraseFromParent(), F(), I, llvm::GlobalValue::isMaterializable(), Materialize(), llvm::Value::replaceAllUsesWith(), llvm::error_code::success(), llvm::swap(), llvm::UpgradeInstWithTBAATag(), llvm::UpgradeIntrinsicCall(), llvm::Value::use_begin(), llvm::Value::use_empty(), and llvm::Value::use_end().
error_code BitcodeReader::ParseBitcodeInto | ( | Module * | M | ) |
Main interface to parsing a bitcode buffer.
Definition at line 1934 of file BitcodeReader.cpp.
References llvm::BitstreamCursor::advance(), llvm::BitstreamCursor::AF_DontAutoprocessAbbrevs, llvm::BitstreamCursor::AtEndOfStream(), llvm::bitc::BLOCKINFO_BLOCK_ID, llvm::BitstreamEntry::EndBlock, llvm::BitstreamEntry::Error, Error(), llvm::BitstreamCursor::getAbbrevIDWidth(), llvm::BitstreamEntry::ID, InvalidBitcodeSignature, InvalidMultipleBlocks, InvalidRecord, llvm::BitstreamEntry::Kind, MalformedBlock, llvm::bitc::MODULE_BLOCK_ID, llvm::BitstreamCursor::Read(), llvm::BitstreamCursor::ReadBlockInfoBlock(), llvm::BitstreamEntry::Record, llvm::BitstreamCursor::SkipBlock(), llvm::BitstreamEntry::SubBlock, and llvm::error_code::success().
Referenced by llvm::getStreamedBitcodeModule().
error_code BitcodeReader::ParseTriple | ( | std::string & | Triple | ) |
Cheap mechanism to just extract module triple.
Definition at line 2038 of file BitcodeReader.cpp.
References llvm::BitstreamCursor::advance(), llvm::BitstreamEntry::EndBlock, llvm::BitstreamEntry::Error, Error(), llvm::BitstreamEntry::ID, InvalidBitcodeSignature, llvm::BitstreamEntry::Kind, MalformedBlock, llvm::bitc::MODULE_BLOCK_ID, llvm::BitstreamCursor::Read(), llvm::BitstreamEntry::Record, llvm::BitstreamCursor::SkipBlock(), llvm::BitstreamCursor::skipRecord(), llvm::BitstreamEntry::SubBlock, and llvm::error_code::success().
Referenced by llvm::getBitcodeTargetTriple().
|
inline |
setBufferOwned - If this is true, the reader will destroy the MemoryBuffer when the reader is destroyed.
Definition at line 248 of file BitcodeReader.h.
Referenced by llvm::getBitcodeTargetTriple(), and llvm::getStreamedBitcodeModule().