LLVM  6.0.0svn
Functions

Modules represent the top-level structure in an LLVM program. More...

Collaboration diagram for Modules:

Functions

LLVMModuleRef LLVMModuleCreateWithName (const char *ModuleID)
 Create a new, empty module in the global context. More...
 
LLVMModuleRef LLVMModuleCreateWithNameInContext (const char *ModuleID, LLVMContextRef C)
 Create a new, empty module in a specific context. More...
 
LLVMModuleRef LLVMCloneModule (LLVMModuleRef M)
 Return an exact copy of the specified module. More...
 
void LLVMDisposeModule (LLVMModuleRef M)
 Destroy a module instance. More...
 
const charLLVMGetModuleIdentifier (LLVMModuleRef M, size_t *Len)
 Obtain the identifier of a module. More...
 
void LLVMSetModuleIdentifier (LLVMModuleRef M, const char *Ident, size_t Len)
 Set the identifier of a module to a string Ident with length Len. More...
 
const charLLVMGetDataLayoutStr (LLVMModuleRef M)
 Obtain the data layout for a module. More...
 
const charLLVMGetDataLayout (LLVMModuleRef M)
 
void LLVMSetDataLayout (LLVMModuleRef M, const char *DataLayoutStr)
 Set the data layout for a module. More...
 
const charLLVMGetTarget (LLVMModuleRef M)
 Obtain the target triple for a module. More...
 
void LLVMSetTarget (LLVMModuleRef M, const char *Triple)
 Set the target triple for a module. More...
 
void LLVMDumpModule (LLVMModuleRef M)
 Dump a representation of a module to stderr. More...
 
LLVMBool LLVMPrintModuleToFile (LLVMModuleRef M, const char *Filename, char **ErrorMessage)
 Print a representation of a module to a file. More...
 
charLLVMPrintModuleToString (LLVMModuleRef M)
 Return a string representation of the module. More...
 
void LLVMSetModuleInlineAsm (LLVMModuleRef M, const char *Asm)
 Set inline assembly for a module. More...
 
LLVMContextRef LLVMGetModuleContext (LLVMModuleRef M)
 Obtain the context to which this module is associated. More...
 
LLVMTypeRef LLVMGetTypeByName (LLVMModuleRef M, const char *Name)
 Obtain a Type from a module by its registered name. More...
 
unsigned LLVMGetNamedMetadataNumOperands (LLVMModuleRef M, const char *Name)
 Obtain the number of operands for named metadata in a module. More...
 
void LLVMGetNamedMetadataOperands (LLVMModuleRef M, const char *Name, LLVMValueRef *Dest)
 Obtain the named metadata operands for a module. More...
 
void LLVMAddNamedMetadataOperand (LLVMModuleRef M, const char *Name, LLVMValueRef Val)
 Add an operand to named metadata. More...
 
LLVMValueRef LLVMAddFunction (LLVMModuleRef M, const char *Name, LLVMTypeRef FunctionTy)
 Add a function to a module under a specified name. More...
 
LLVMValueRef LLVMGetNamedFunction (LLVMModuleRef M, const char *Name)
 Obtain a Function value from a Module by its name. More...
 
LLVMValueRef LLVMGetFirstFunction (LLVMModuleRef M)
 Obtain an iterator to the first Function in a Module. More...
 
LLVMValueRef LLVMGetLastFunction (LLVMModuleRef M)
 Obtain an iterator to the last Function in a Module. More...
 
LLVMValueRef LLVMGetNextFunction (LLVMValueRef Fn)
 Advance a Function iterator to the next Function. More...
 
LLVMValueRef LLVMGetPreviousFunction (LLVMValueRef Fn)
 Decrement a Function iterator to the previous Function. More...
 

Detailed Description

Modules represent the top-level structure in an LLVM program.

An LLVM module is effectively a translation unit or a collection of translation units merged together.

Function Documentation

◆ LLVMAddFunction()

LLVMValueRef LLVMAddFunction ( LLVMModuleRef  M,
const char Name,
LLVMTypeRef  FunctionTy 
)

Add a function to a module under a specified name.

See also
llvm::Function::Create()

Definition at line 1786 of file Core.cpp.

References llvm::Function::Create(), llvm::GlobalValue::ExternalLinkage, llvm::unwrap(), and llvm::wrap().

◆ LLVMAddNamedMetadataOperand()

void LLVMAddNamedMetadataOperand ( LLVMModuleRef  M,
const char Name,
LLVMValueRef  Val 
)

Add an operand to named metadata.

See also
llvm::Module::getNamedMetadata()
llvm::MDNode::addOperand()

Definition at line 942 of file Core.cpp.

References llvm::NamedMDNode::addOperand(), extractMDNode(), N, and llvm::unwrap().

◆ LLVMCloneModule()

LLVMModuleRef LLVMCloneModule ( LLVMModuleRef  M)

Return an exact copy of the specified module.

Definition at line 197 of file CloneModule.cpp.

References llvm::CloneModule(), llvm::release, llvm::unwrap(), and llvm::wrap().

◆ LLVMDisposeModule()

void LLVMDisposeModule ( LLVMModuleRef  M)

Destroy a module instance.

This must be called for every created module or memory will be leaked.

Definition at line 223 of file Core.cpp.

References llvm::unwrap().

◆ LLVMDumpModule()

void LLVMDumpModule ( LLVMModuleRef  M)

Dump a representation of a module to stderr.

See also
Module::dump()

Definition at line 260 of file Core.cpp.

References llvm::errs(), and llvm::unwrap().

◆ LLVMGetDataLayout()

const char* LLVMGetDataLayout ( LLVMModuleRef  M)

Definition at line 243 of file Core.cpp.

References LLVMGetDataLayoutStr().

◆ LLVMGetDataLayoutStr()

const char* LLVMGetDataLayoutStr ( LLVMModuleRef  M)

Obtain the data layout for a module.

See also
Module::getDataLayoutStr()

LLVMGetDataLayout is DEPRECATED, as the name is not only incorrect, but match the name of another method on the module. Prefer the use of LLVMGetDataLayoutStr, which is not ambiguous.

Definition at line 239 of file Core.cpp.

References llvm::unwrap().

Referenced by LLVMGetDataLayout().

◆ LLVMGetFirstFunction()

LLVMValueRef LLVMGetFirstFunction ( LLVMModuleRef  M)

Obtain an iterator to the first Function in a Module.

See also
llvm::Module::begin()

Definition at line 1796 of file Core.cpp.

References llvm::Module::begin(), llvm::Module::end(), I, llvm::Mod, llvm::unwrap(), and llvm::wrap().

◆ LLVMGetLastFunction()

LLVMValueRef LLVMGetLastFunction ( LLVMModuleRef  M)

Obtain an iterator to the last Function in a Module.

See also
llvm::Module::end()

Definition at line 1804 of file Core.cpp.

References llvm::Module::begin(), llvm::Module::end(), I, llvm::Mod, llvm::unwrap(), and llvm::wrap().

◆ LLVMGetModuleContext()

LLVMContextRef LLVMGetModuleContext ( LLVMModuleRef  M)

Obtain the context to which this module is associated.

See also
Module::getContext()

Definition at line 304 of file Core.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMGetModuleIdentifier()

const char* LLVMGetModuleIdentifier ( LLVMModuleRef  M,
size_t *  Len 
)

Obtain the identifier of a module.

Parameters
MModule to obtain identifier of
LenOut parameter which holds the length of the returned string.
Returns
The identifier of M.
See also
Module::getModuleIdentifier()

Definition at line 227 of file Core.cpp.

References llvm::unwrap().

◆ LLVMGetNamedFunction()

LLVMValueRef LLVMGetNamedFunction ( LLVMModuleRef  M,
const char Name 
)

Obtain a Function value from a Module by its name.

The returned value corresponds to a llvm::Function value.

See also
llvm::Module::getFunction()

Definition at line 1792 of file Core.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMGetNamedMetadataNumOperands()

unsigned LLVMGetNamedMetadataNumOperands ( LLVMModuleRef  M,
const char Name 
)

Obtain the number of operands for named metadata in a module.

See also
llvm::Module::getNamedMetadata()

Definition at line 925 of file Core.cpp.

References N, and llvm::unwrap().

◆ LLVMGetNamedMetadataOperands()

void LLVMGetNamedMetadataOperands ( LLVMModuleRef  M,
const char Name,
LLVMValueRef Dest 
)

Obtain the named metadata operands for a module.

The passed LLVMValueRef pointer should refer to an array of LLVMValueRef at least LLVMGetNamedMetadataNumOperands long. This array will be populated with the LLVMValueRef instances. Each instance corresponds to a llvm::MDNode.

See also
llvm::Module::getNamedMetadata()
llvm::MDNode::getOperand()

Definition at line 932 of file Core.cpp.

References Context, llvm::MetadataAsValue::get(), llvm::NamedMDNode::getNumOperands(), llvm::NamedMDNode::getOperand(), N, llvm::unwrap(), and llvm::wrap().

◆ LLVMGetNextFunction()

LLVMValueRef LLVMGetNextFunction ( LLVMValueRef  Fn)

Advance a Function iterator to the next Function.

Returns NULL if the iterator was already at the end and there are no more functions.

Definition at line 1812 of file Core.cpp.

References llvm::Module::end(), llvm::GlobalValue::getParent(), I, and llvm::wrap().

◆ LLVMGetPreviousFunction()

LLVMValueRef LLVMGetPreviousFunction ( LLVMValueRef  Fn)

Decrement a Function iterator to the previous Function.

Returns NULL if the iterator was already at the beginning and there are no previous functions.

Definition at line 1820 of file Core.cpp.

References llvm::Module::begin(), llvm::GlobalValue::getParent(), I, and llvm::wrap().

◆ LLVMGetTarget()

const char* LLVMGetTarget ( LLVMModuleRef  M)

Obtain the target triple for a module.

See also
Module::getTargetTriple()

Definition at line 252 of file Core.cpp.

References llvm::unwrap().

◆ LLVMGetTypeByName()

LLVMTypeRef LLVMGetTypeByName ( LLVMModuleRef  M,
const char Name 
)

Obtain a Type from a module by its registered name.

Definition at line 563 of file Core.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMModuleCreateWithName()

LLVMModuleRef LLVMModuleCreateWithName ( const char ModuleID)

Create a new, empty module in the global context.

This is equivalent to calling LLVMModuleCreateWithNameInContext with LLVMGetGlobalContext() as the context parameter.

Every invocation should be paired with LLVMDisposeModule() or memory will be leaked.

Definition at line 214 of file Core.cpp.

References llvm::wrap().

◆ LLVMModuleCreateWithNameInContext()

LLVMModuleRef LLVMModuleCreateWithNameInContext ( const char ModuleID,
LLVMContextRef  C 
)

Create a new, empty module in a specific context.

Every invocation should be paired with LLVMDisposeModule() or memory will be leaked.

Definition at line 218 of file Core.cpp.

References llvm::unwrap(), and llvm::wrap().

◆ LLVMPrintModuleToFile()

LLVMBool LLVMPrintModuleToFile ( LLVMModuleRef  M,
const char Filename,
char **  ErrorMessage 
)

Print a representation of a module to a file.

The ErrorMessage needs to be disposed with LLVMDisposeMessage. Returns 0 on success, 1 otherwise.

See also
Module::print()

Definition at line 265 of file Core.cpp.

References llvm::raw_fd_ostream::close(), E, llvm::raw_fd_ostream::error(), llvm::sys::fs::F_Text, llvm::raw_fd_ostream::has_error(), and llvm::unwrap().

◆ LLVMPrintModuleToString()

char* LLVMPrintModuleToString ( LLVMModuleRef  M)

Return a string representation of the module.

Use LLVMDisposeMessage to free the string.

See also
Module::print()

Definition at line 287 of file Core.cpp.

References llvm::raw_ostream::flush(), and llvm::unwrap().

◆ LLVMSetDataLayout()

void LLVMSetDataLayout ( LLVMModuleRef  M,
const char DataLayoutStr 
)

Set the data layout for a module.

See also
Module::setDataLayout()

Definition at line 247 of file Core.cpp.

References llvm::unwrap().

◆ LLVMSetModuleIdentifier()

void LLVMSetModuleIdentifier ( LLVMModuleRef  M,
const char Ident,
size_t  Len 
)

Set the identifier of a module to a string Ident with length Len.

Parameters
MThe module to set identifier
IdentThe string to set M's identifier to
LenLength of Ident
See also
Module::setModuleIdentifier()

Definition at line 233 of file Core.cpp.

References llvm::unwrap().

◆ LLVMSetModuleInlineAsm()

void LLVMSetModuleInlineAsm ( LLVMModuleRef  M,
const char Asm 
)

Set inline assembly for a module.

See also
Module::setModuleInlineAsm()

Definition at line 298 of file Core.cpp.

References llvm::unwrap().

◆ LLVMSetTarget()

void LLVMSetTarget ( LLVMModuleRef  M,
const char Triple 
)

Set the target triple for a module.

See also
Module::setTargetTriple()

Definition at line 256 of file Core.cpp.

References llvm::unwrap().