LLVM  8.0.1
Classes | Public Member Functions | Static Public Member Functions | List of all members
llvm::LTOModule Struct Reference

C++ class which implements the opaque lto_module_t type. More...

#include "llvm/LTO/legacy/LTOModule.h"

Public Member Functions

 ~LTOModule ()
 
bool isThinLTO ()
 Returns 'true' if the Module is produced for ThinLTO. More...
 
const ModulegetModule () const
 
ModulegetModule ()
 
std::unique_ptr< ModuletakeModule ()
 
const std::string & getTargetTriple ()
 Return the Module's target triple. More...
 
void setTargetTriple (StringRef Triple)
 Set the Module's target triple. More...
 
uint32_t getSymbolCount ()
 Get the number of symbols. More...
 
lto_symbol_attributes getSymbolAttributes (uint32_t index)
 Get the attributes for a symbol at the specified index. More...
 
StringRef getSymbolName (uint32_t index)
 Get the name of the symbol at the specified index. More...
 
const GlobalValuegetSymbolGV (uint32_t index)
 
StringRef getLinkerOpts ()
 
const std::vector< StringRef > & getAsmUndefinedRefs ()
 

Static Public Member Functions

static bool isBitcodeFile (const void *mem, size_t length)
 Returns 'true' if the file or memory contents is LLVM bitcode. More...
 
static bool isBitcodeFile (StringRef path)
 
static bool isBitcodeForTarget (MemoryBuffer *memBuffer, StringRef triplePrefix)
 Returns 'true' if the memory buffer is LLVM bitcode for the specified triple. More...
 
static std::string getProducerString (MemoryBuffer *Buffer)
 Returns a string representing the producer identification stored in the bitcode, or "" if the bitcode does not contains any. More...
 
static std::unique_ptr< MemoryBuffermakeBuffer (const void *mem, size_t length, StringRef name="")
 Create a MemoryBuffer from a memory range with an optional name. More...
 
static ErrorOr< std::unique_ptr< LTOModule > > createFromFile (LLVMContext &Context, StringRef path, const TargetOptions &options)
 Create an LTOModule. More...
 
static ErrorOr< std::unique_ptr< LTOModule > > createFromOpenFile (LLVMContext &Context, int fd, StringRef path, size_t size, const TargetOptions &options)
 
static ErrorOr< std::unique_ptr< LTOModule > > createFromOpenFileSlice (LLVMContext &Context, int fd, StringRef path, size_t map_size, off_t offset, const TargetOptions &options)
 
static ErrorOr< std::unique_ptr< LTOModule > > createFromBuffer (LLVMContext &Context, const void *mem, size_t length, const TargetOptions &options, StringRef path="")
 
static ErrorOr< std::unique_ptr< LTOModule > > createInLocalContext (std::unique_ptr< LLVMContext > Context, const void *mem, size_t length, const TargetOptions &options, StringRef path)
 

Detailed Description

C++ class which implements the opaque lto_module_t type.

Definition at line 38 of file LTOModule.h.

Constructor & Destructor Documentation

◆ ~LTOModule()

LTOModule::~LTOModule ( )

Definition at line 52 of file LTOModule.cpp.

Member Function Documentation

◆ createFromBuffer()

ErrorOr< std::unique_ptr< LTOModule > > LTOModule::createFromBuffer ( LLVMContext Context,
const void *  mem,
size_t  length,
const TargetOptions options,
StringRef  path = "" 
)
static

Definition at line 145 of file LTOModule.cpp.

References llvm::Data.

◆ createFromFile()

ErrorOr< std::unique_ptr< LTOModule > > LTOModule::createFromFile ( LLVMContext Context,
StringRef  path,
const TargetOptions options 
)
static

Create an LTOModule.

N.B. These methods take ownership of the buffer. The caller must have initialized the Targets, the TargetMCs, the AsmPrinters, and the AsmParsers by calling:

InitializeAllTargets(); InitializeAllTargetMCs(); InitializeAllAsmPrinters(); InitializeAllAsmParsers();

Definition at line 110 of file LTOModule.cpp.

References llvm::LLVMContext::emitError(), llvm::ErrorOr< T >::get(), llvm::ErrorOr< T >::getError(), and llvm::MemoryBuffer::getFile().

◆ createFromOpenFile()

ErrorOr< std::unique_ptr< LTOModule > > LTOModule::createFromOpenFile ( LLVMContext Context,
int  fd,
StringRef  path,
size_t  size,
const TargetOptions options 
)
static

Definition at line 124 of file LTOModule.cpp.

◆ createFromOpenFileSlice()

ErrorOr< std::unique_ptr< LTOModule > > LTOModule::createFromOpenFileSlice ( LLVMContext Context,
int  fd,
StringRef  path,
size_t  map_size,
off_t  offset,
const TargetOptions options 
)
static

◆ createInLocalContext()

ErrorOr< std::unique_ptr< LTOModule > > LTOModule::createInLocalContext ( std::unique_ptr< LLVMContext Context,
const void *  mem,
size_t  length,
const TargetOptions options,
StringRef  path 
)
static

Definition at line 154 of file LTOModule.cpp.

References llvm::Data, and llvm::MipsISD::Ret.

◆ getAsmUndefinedRefs()

const std::vector<StringRef>& llvm::LTOModule::getAsmUndefinedRefs ( )
inline

Definition at line 157 of file LTOModule.h.

References F(), name, and Name.

Referenced by llvm::LTOCodeGenerator::setAsmUndefinedRefs().

◆ getLinkerOpts()

StringRef llvm::LTOModule::getLinkerOpts ( )
inline

Definition at line 155 of file LTOModule.h.

◆ getModule() [1/2]

const Module& llvm::LTOModule::getModule ( ) const
inline

◆ getModule() [2/2]

Module& llvm::LTOModule::getModule ( )
inline

Definition at line 116 of file LTOModule.h.

◆ getProducerString()

std::string LTOModule::getProducerString ( MemoryBuffer Buffer)
static

Returns a string representing the producer identification stored in the bitcode, or "" if the bitcode does not contains any.

Definition at line 96 of file LTOModule.cpp.

References llvm::errorToBool(), llvm::expectedToErrorOrAndEmitErrors(), llvm::getBitcodeProducerString(), llvm::MemoryBuffer::getMemBufferRef(), and llvm::Expected< T >::takeError().

◆ getSymbolAttributes()

lto_symbol_attributes llvm::LTOModule::getSymbolAttributes ( uint32_t  index)
inline

Get the attributes for a symbol at the specified index.

Definition at line 136 of file LTOModule.h.

References attributes.

◆ getSymbolCount()

uint32_t llvm::LTOModule::getSymbolCount ( )
inline

Get the number of symbols.

Definition at line 131 of file LTOModule.h.

◆ getSymbolGV()

const GlobalValue* llvm::LTOModule::getSymbolGV ( uint32_t  index)
inline

Definition at line 149 of file LTOModule.h.

◆ getSymbolName()

StringRef llvm::LTOModule::getSymbolName ( uint32_t  index)
inline

Get the name of the symbol at the specified index.

Definition at line 143 of file LTOModule.h.

References name.

◆ getTargetTriple()

const std::string& llvm::LTOModule::getTargetTriple ( )
inline

Return the Module's target triple.

Definition at line 121 of file LTOModule.h.

References getModule(), and llvm::Module::getTargetTriple().

◆ isBitcodeFile() [1/2]

bool LTOModule::isBitcodeFile ( const void *  Mem,
size_t  Length 
)
static

Returns 'true' if the file or memory contents is LLVM bitcode.

isBitcodeFile - Returns 'true' if the file (or memory contents) is LLVM bitcode.

Definition at line 56 of file LTOModule.cpp.

References llvm::errorToBool(), and llvm::Expected< T >::takeError().

◆ isBitcodeFile() [2/2]

bool LTOModule::isBitcodeFile ( StringRef  path)
static

◆ isBitcodeForTarget()

bool LTOModule::isBitcodeForTarget ( MemoryBuffer memBuffer,
StringRef  triplePrefix 
)
static

Returns 'true' if the memory buffer is LLVM bitcode for the specified triple.

Definition at line 82 of file LTOModule.cpp.

References llvm::errorToBool(), llvm::expectedToErrorOrAndEmitErrors(), llvm::getBitcodeTargetTriple(), llvm::MemoryBuffer::getMemBufferRef(), llvm::StringRef::startswith(), and llvm::Expected< T >::takeError().

◆ isThinLTO()

bool LTOModule::isThinLTO ( )

Returns 'true' if the Module is produced for ThinLTO.

Definition at line 73 of file LTOModule.cpp.

References llvm::errs(), llvm::getBitcodeLTOInfo(), llvm::logAllUnhandledErrors(), and llvm::Expected< T >::takeError().

◆ makeBuffer()

std::unique_ptr< MemoryBuffer > LTOModule::makeBuffer ( const void *  mem,
size_t  length,
StringRef  name = "" 
)
static

Create a MemoryBuffer from a memory range with an optional name.

Definition at line 239 of file LTOModule.cpp.

References assert(), llvm::StringMap< ValueTy, AllocatorTy >::begin(), llvm::SmallString< InternalLen >::c_str(), llvm::GlobalValue::canBeOmittedFromSymbolTable(), llvm::countTrailingZeros(), llvm::StringRef::data(), llvm::PointerUnion< PT1, PT2 >::dyn_cast(), llvm::dyn_cast(), llvm::emitLinkerFlagsForGlobalCOFF(), F(), llvm::PointerUnion< PT1, PT2 >::get(), llvm::GlobalValue::getAlignment(), llvm::GlobalVariable::getInitializer(), llvm::MemoryBuffer::getMemBuffer(), llvm::MDNode::getNumOperands(), llvm::User::getOperand(), llvm::MDNode::getOperand(), llvm::MDString::getString(), llvm::GlobalValue::hasComdat(), llvm::GlobalValue::hasCommonLinkage(), llvm::GlobalValue::hasExternalWeakLinkage(), llvm::GlobalValue::hasHiddenVisibility(), llvm::GlobalValue::hasLinkOnceLinkage(), llvm::GlobalValue::hasLocalLinkage(), llvm::GlobalValue::hasProtectedVisibility(), llvm::GlobalValue::hasSection(), llvm::GlobalValue::hasWeakLinkage(), info, llvm::GlobalVariable::isConstant(), LTO_SYMBOL_ALIAS, LTO_SYMBOL_COMDAT, LTO_SYMBOL_DEFINITION_REGULAR, LTO_SYMBOL_DEFINITION_TENTATIVE, LTO_SYMBOL_DEFINITION_UNDEFINED, LTO_SYMBOL_DEFINITION_WEAK, LTO_SYMBOL_DEFINITION_WEAKUNDEF, LTO_SYMBOL_PERMISSIONS_CODE, LTO_SYMBOL_PERMISSIONS_DATA, LTO_SYMBOL_PERMISSIONS_RODATA, LTO_SYMBOL_SCOPE_DEFAULT, LTO_SYMBOL_SCOPE_DEFAULT_CAN_BE_HIDDEN, LTO_SYMBOL_SCOPE_HIDDEN, LTO_SYMBOL_SCOPE_INTERNAL, LTO_SYMBOL_SCOPE_MASK, LTO_SYMBOL_SCOPE_PROTECTED, name, Name, op, llvm::ARMBuildAttrs::Section, llvm::object::BasicSymbolRef::SF_FormatSpecific, llvm::object::BasicSymbolRef::SF_Global, llvm::object::BasicSymbolRef::SF_Undefined, llvm::StringRef::size(), and llvm::StringRef::startswith().

◆ setTargetTriple()

void llvm::LTOModule::setTargetTriple ( StringRef  Triple)
inline

Set the Module's target triple.

Definition at line 126 of file LTOModule.h.

References getModule(), and llvm::Module::setTargetTriple().

◆ takeModule()

std::unique_ptr<Module> llvm::LTOModule::takeModule ( )
inline

Definition at line 118 of file LTOModule.h.

Referenced by llvm::LTOCodeGenerator::addModule().


The documentation for this struct was generated from the following files: