|
LLVM
3.7.0
|
#include <IRObjectFile.h>
Static Public Member Functions | |
| static bool | classof (const Binary *v) |
| static ErrorOr< MemoryBufferRef > | findBitcodeInObject (const ObjectFile &Obj) |
| Finds and returns bitcode embedded in the given object file, or an error code if not found. More... | |
| static ErrorOr< MemoryBufferRef > | findBitcodeInMemBuffer (MemoryBufferRef Object) |
| Finds and returns bitcode in the given memory buffer (which may be either a bitcode file or a native object file with embedded bitcode), or an error code if not found. More... | |
| static ErrorOr < std::unique_ptr < IRObjectFile > > | create (MemoryBufferRef Object, LLVMContext &Context) |
Static Public Member Functions inherited from llvm::object::SymbolicFile | |
| static ErrorOr < std::unique_ptr < SymbolicFile > > | createSymbolicFile (MemoryBufferRef Object, sys::fs::file_magic Type, LLVMContext *Context) |
| static ErrorOr < std::unique_ptr < SymbolicFile > > | createSymbolicFile (MemoryBufferRef Object) |
| static ErrorOr< OwningBinary < SymbolicFile > > | createSymbolicFile (StringRef ObjectPath) |
| static bool | classof (const Binary *v) |
Additional Inherited Members | |
Public Types inherited from llvm::object::SymbolicFile | |
| typedef iterator_range < basic_symbol_iterator > | basic_symbol_iterator_range |
Protected Types inherited from llvm::object::Binary | |
| enum | { ID_Archive, ID_MachOUniversalBinary, ID_IR, ID_StartObjects, ID_COFF, ID_ELF32L, ID_ELF32B, ID_ELF64L, ID_ELF64B, ID_MachO32L, ID_MachO32B, ID_MachO64L, ID_MachO64B, ID_EndObjects } |
Protected Member Functions inherited from llvm::object::Binary | |
| Binary (unsigned int Type, MemoryBufferRef Source) | |
Static Protected Member Functions inherited from llvm::object::Binary | |
| static unsigned int | getELFType (bool isLE, bool is64Bits) |
| static unsigned int | getMachOType (bool isLE, bool is64Bits) |
Protected Attributes inherited from llvm::object::Binary | |
| MemoryBufferRef | Data |
Definition at line 27 of file IRObjectFile.h.
| IRObjectFile::IRObjectFile | ( | MemoryBufferRef | Object, |
| std::unique_ptr< Module > | M | ||
| ) |
Definition at line 38 of file IRObjectFile.cpp.
References llvm::SourceMgr::AddNewSourceBuffer(), llvm::Target::createMCAsmInfo(), llvm::createMCAsmParser(), llvm::Target::createMCAsmParser(), llvm::Target::createMCInstrInfo(), llvm::Target::createMCRegInfo(), llvm::Target::createMCSubtargetInfo(), llvm::Target::createNullTargetStreamer(), llvm::Reloc::Default, llvm::CodeModel::Default, llvm::RecordStreamer::Defined, llvm::RecordStreamer::DefinedGlobal, llvm::MemoryBuffer::getMemBuffer(), llvm::RecordStreamer::Global, llvm::MCObjectFileInfo::InitMCObjectFileInfo(), llvm_unreachable, llvm::TargetRegistry::lookupTarget(), llvm::RecordStreamer::NeverSeen, llvm::object::BasicSymbolRef::SF_Global, llvm::object::BasicSymbolRef::SF_None, llvm::object::BasicSymbolRef::SF_Undefined, llvm::SrcMgr, and llvm::RecordStreamer::Used.
|
override |
Definition at line 114 of file IRObjectFile.cpp.
Definition at line 54 of file IRObjectFile.h.
References llvm::object::Binary::isIR().
|
static |
Definition at line 296 of file IRObjectFile.cpp.
References llvm::ErrorOr< T >::get(), llvm::ErrorOr< T >::getError(), llvm::getLazyBitcodeModule(), and llvm::MemoryBuffer::getMemBuffer().
Referenced by llvm::object::SymbolicFile::createSymbolicFile().
|
static |
Finds and returns bitcode in the given memory buffer (which may be either a bitcode file or a native object file with embedded bitcode), or an error code if not found.
Definition at line 276 of file IRObjectFile.cpp.
References llvm::sys::fs::file_magic::bitcode, llvm::sys::fs::file_magic::coff_object, llvm::object::ObjectFile::createObjectFile(), llvm::sys::fs::file_magic::elf_relocatable, findBitcodeInObject(), llvm::ErrorOr< T >::get(), llvm::MemoryBufferRef::getBuffer(), llvm::ErrorOr< T >::getError(), llvm::sys::fs::identify_magic(), llvm::object::invalid_file_type, and llvm::sys::fs::file_magic::macho_object.
Referenced by llvm::LTOModule::isBitcodeFile(), llvm::LTOModule::isBitcodeForTarget(), and parseBitcodeFileImpl().
|
static |
Finds and returns bitcode embedded in the given object file, or an error code if not found.
Definition at line 260 of file IRObjectFile.cpp.
References llvm::object::bitcode_section_not_found, llvm::object::Binary::getFileName(), and llvm::object::ObjectFile::sections().
Referenced by llvm::object::SymbolicFile::createSymbolicFile(), and findBitcodeInMemBuffer().
Definition at line 46 of file IRObjectFile.h.
|
inline |
Definition at line 49 of file IRObjectFile.h.
|
overridevirtual |
Implements llvm::object::SymbolicFile.
Definition at line 210 of file IRObjectFile.cpp.
References getAsmSymIndex(), getGV(), llvm::Value::getName(), llvm::GlobalValue::hasCommonLinkage(), llvm::GlobalValue::hasLinkOnceLinkage(), llvm::GlobalValue::hasLocalLinkage(), llvm::GlobalValue::hasPrivateLinkage(), llvm::GlobalValue::hasWeakLinkage(), llvm::GlobalValue::isDeclarationForLinker(), llvm::object::BasicSymbolRef::SF_Common, llvm::object::BasicSymbolRef::SF_FormatSpecific, llvm::object::BasicSymbolRef::SF_Global, llvm::object::BasicSymbolRef::SF_None, llvm::object::BasicSymbolRef::SF_Undefined, llvm::object::BasicSymbolRef::SF_Weak, and llvm::StringRef::startswith().
| GlobalValue * IRObjectFile::getSymbolGV | ( | DataRefImpl | Symb | ) |
|
inline |
Definition at line 40 of file IRObjectFile.h.
References getSymbolGV().
|
overridevirtual |
Implements llvm::object::SymbolicFile.
Definition at line 152 of file IRObjectFile.cpp.
References getAsmSymIndex(), getGV(), llvm_unreachable, llvm::object::DataRefImpl::p, and skipEmpty().
|
overridevirtual |
Implements llvm::object::SymbolicFile.
Definition at line 189 of file IRObjectFile.cpp.
References getAsmSymIndex(), getGV(), llvm::Value::getName(), and llvm::GlobalValue::hasDLLImportStorageClass().
|
overridevirtual |
Implements llvm::object::SymbolicFile.
Definition at line 245 of file IRObjectFile.cpp.
References llvm::Module::begin(), llvm::object::DataRefImpl::p, llvm::MipsISD::Ret, and skipEmpty().
|
overridevirtual |
Implements llvm::object::SymbolicFile.
Definition at line 252 of file IRObjectFile.cpp.
References llvm::object::DataRefImpl::p, and llvm::MipsISD::Ret.
| std::unique_ptr< Module > IRObjectFile::takeModule | ( | ) |
Definition at line 243 of file IRObjectFile.cpp.
1.8.6