LLVM 22.0.0git
llvm::LTOModule Struct Reference

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

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

Public Member Functions

LLVM_ABI ~LTOModule ()
LLVM_ABI bool isThinLTO ()
 Returns 'true' if the Module is produced for ThinLTO.
const ModulegetModule () const
ModulegetModule ()
std::unique_ptr< ModuletakeModule ()
const TriplegetTargetTriple ()
 Return the Module's target triple.
void setTargetTriple (Triple T)
 Set the Module's target triple.
uint32_t getSymbolCount ()
 Get the number of symbols.
lto_symbol_attributes getSymbolAttributes (uint32_t index)
 Get the attributes for a symbol at the specified index.
StringRef getSymbolName (uint32_t index)
 Get the name of the symbol at the specified index.
uint32_t getAsmUndefSymbolCount ()
StringRef getAsmUndefSymbolName (uint32_t index)
const GlobalValuegetSymbolGV (uint32_t index)
StringRef getLinkerOpts ()
const std::vector< StringRef > & getAsmUndefinedRefs ()
LLVM_ABI Expected< uint32_tgetMachOCPUType () const
LLVM_ABI Expected< uint32_tgetMachOCPUSubType () const
LLVM_ABI bool hasCtorDtor () const
 Returns true if the module has either the @llvm.global_ctors or the @llvm.global_dtors symbol.

Static Public Member Functions

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

Detailed Description

C++ class which implements the opaque lto_module_t type.

Definition at line 39 of file LTOModule.h.

Constructor & Destructor Documentation

◆ ~LTOModule()

LTOModule::~LTOModule ( )
default

References LLVM_ABI, name, and llvm::size().

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

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

References createFromOpenFileSlice(), and llvm::size().

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

References llvm::Data.

◆ createInputFile()

lto::InputFile * LTOModule::createInputFile ( const void * buffer,
size_t buffer_size,
const char * path,
std::string & out_error )
static

◆ getAsmUndefinedRefs()

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

Definition at line 162 of file LTOModule.h.

◆ getAsmUndefSymbolCount()

uint32_t llvm::LTOModule::getAsmUndefSymbolCount ( )
inline

Definition at line 146 of file LTOModule.h.

◆ getAsmUndefSymbolName()

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

Definition at line 148 of file LTOModule.h.

◆ getDependentLibrary()

const char * LTOModule::getDependentLibrary ( lto::InputFile * input,
size_t index,
size_t * size )
static

◆ getDependentLibraryCount()

size_t LTOModule::getDependentLibraryCount ( lto::InputFile * input)
static

Definition at line 678 of file LTOModule.cpp.

References llvm::lto::InputFile::getDependentLibraries().

◆ getLinkerOpts()

StringRef llvm::LTOModule::getLinkerOpts ( )
inline

Definition at line 160 of file LTOModule.h.

◆ getMachOCPUSubType()

Expected< uint32_t > LTOModule::getMachOCPUSubType ( ) const

Definition at line 693 of file LTOModule.cpp.

References llvm::MachO::getCPUSubType().

◆ getMachOCPUType()

Expected< uint32_t > LTOModule::getMachOCPUType ( ) const

Definition at line 689 of file LTOModule.cpp.

References llvm::MachO::getCPUType().

◆ getModule() [1/2]

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

Definition at line 117 of file LTOModule.h.

◆ getModule() [2/2]

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

Definition at line 116 of file LTOModule.h.

Referenced by getTargetTriple(), and setTargetTriple().

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

References llvm::errorToBool(), llvm::expectedToErrorOrAndEmitErrors(), llvm::object::IRObjectFile::findBitcodeInMemBuffer(), 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 133 of file LTOModule.h.

◆ getSymbolCount()

uint32_t llvm::LTOModule::getSymbolCount ( )
inline

Get the number of symbols.

Definition at line 128 of file LTOModule.h.

◆ getSymbolGV()

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

Definition at line 154 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 140 of file LTOModule.h.

◆ getTargetTriple()

const Triple & llvm::LTOModule::getTargetTriple ( )
inline

Return the Module's target triple.

Definition at line 122 of file LTOModule.h.

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

◆ hasCtorDtor()

bool LTOModule::hasCtorDtor ( ) const

Returns true if the module has either the @llvm.global_ctors or the @llvm.global_dtors symbol.

Otherwise returns false.

Definition at line 697 of file LTOModule.cpp.

References llvm::dyn_cast_if_present().

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

References llvm::errorToBool(), llvm::object::IRObjectFile::findBitcodeInMemBuffer(), llvm::Length, and llvm::Expected< T >::takeError().

◆ isBitcodeFile() [2/2]

◆ isBitcodeForTarget()

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

◆ isThinLTO()

bool LTOModule::isThinLTO ( )

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

Definition at line 70 of file LTOModule.cpp.

References llvm::errs(), llvm::getBitcodeLTOInfo(), and llvm::logAllUnhandledErrors().

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

References llvm::MemoryBuffer::getMemBuffer(), and name.

◆ setTargetTriple()

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

Set the Module's target triple.

Definition at line 125 of file LTOModule.h.

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

◆ takeModule()

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

Definition at line 119 of file LTOModule.h.


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