LLVM  4.0.0
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 <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
< MemoryBuffer
makeBuffer (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 ( )

Definition at line 57 of file LTOModule.cpp.

Member Function Documentation

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

Definition at line 152 of file LTOModule.cpp.

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 117 of file LTOModule.cpp.

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

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

Definition at line 131 of file LTOModule.cpp.

References 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
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 161 of file LTOModule.cpp.

References llvm::MipsISD::Ret.

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

Definition at line 157 of file LTOModule.h.

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

StringRef llvm::LTOModule::getLinkerOpts ( )
inline

Definition at line 155 of file LTOModule.h.

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

Definition at line 116 of file LTOModule.h.

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 103 of file LTOModule.cpp.

References Context, llvm::expectedToErrorOrAndEmitErrors(), llvm::object::IRObjectFile::findBitcodeInMemBuffer(), llvm::getBitcodeProducerString(), and llvm::MemoryBuffer::getMemBufferRef().

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.

uint32_t llvm::LTOModule::getSymbolCount ( )
inline

Get the number of symbols.

Definition at line 131 of file LTOModule.h.

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

Definition at line 149 of file LTOModule.h.

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.

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

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 61 of file LTOModule.cpp.

References llvm::object::IRObjectFile::findBitcodeInMemBuffer().

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

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

Definition at line 78 of file LTOModule.cpp.

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

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 246 of file LTOModule.cpp.

References llvm::MemoryBuffer::getMemBuffer().

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

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: