LLVM API Documentation

Functions
Modules
Core
Collaboration diagram for Modules:

Functions

LLVMModuleRef LLVMModuleCreateWithName (const char *ModuleID)
LLVMModuleRef LLVMModuleCreateWithNameInContext (const char *ModuleID, LLVMContextRef C)
void LLVMDisposeModule (LLVMModuleRef M)
const char * LLVMGetDataLayout (LLVMModuleRef M)
void LLVMSetDataLayout (LLVMModuleRef M, const char *Triple)
const char * LLVMGetTarget (LLVMModuleRef M)
void LLVMSetTarget (LLVMModuleRef M, const char *Triple)
void LLVMDumpModule (LLVMModuleRef M)
LLVMBool LLVMPrintModuleToFile (LLVMModuleRef M, const char *Filename, char **ErrorMessage)
char * LLVMPrintModuleToString (LLVMModuleRef M)
void LLVMSetModuleInlineAsm (LLVMModuleRef M, const char *Asm)
LLVMContextRef LLVMGetModuleContext (LLVMModuleRef M)
LLVMTypeRef LLVMGetTypeByName (LLVMModuleRef M, const char *Name)
unsigned LLVMGetNamedMetadataNumOperands (LLVMModuleRef M, const char *name)
void LLVMGetNamedMetadataOperands (LLVMModuleRef M, const char *name, LLVMValueRef *Dest)
void LLVMAddNamedMetadataOperand (LLVMModuleRef M, const char *name, LLVMValueRef Val)
LLVMValueRef LLVMAddFunction (LLVMModuleRef M, const char *Name, LLVMTypeRef FunctionTy)
LLVMValueRef LLVMGetNamedFunction (LLVMModuleRef M, const char *Name)
LLVMValueRef LLVMGetFirstFunction (LLVMModuleRef M)
LLVMValueRef LLVMGetLastFunction (LLVMModuleRef M)
LLVMValueRef LLVMGetNextFunction (LLVMValueRef Fn)
LLVMValueRef LLVMGetPreviousFunction (LLVMValueRef Fn)

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

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 1530 of file Core.cpp.

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

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 717 of file Core.cpp.

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

Destroy a module instance.

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

Definition at line 158 of file Core.cpp.

References llvm::unwrap().

Dump a representation of a module to stderr.

See also:
Module::dump()

Definition at line 180 of file Core.cpp.

References llvm::unwrap().

Obtain the data layout for a module.

See also:
Module::getDataLayout()

Definition at line 163 of file Core.cpp.

References llvm::unwrap().

Obtain an iterator to the first Function in a Module.

See also:
llvm::Module::begin()

Definition at line 1540 of file Core.cpp.

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

Obtain an iterator to the last Function in a Module.

See also:
llvm::Module::end()

Definition at line 1548 of file Core.cpp.

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

Obtain the context to which this module is associated.

See also:
Module::getContext()

Definition at line 222 of file Core.cpp.

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

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 1536 of file Core.cpp.

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

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

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

Definition at line 700 of file Core.cpp.

References N, and llvm::unwrap().

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 708 of file Core.cpp.

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

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 1556 of file Core.cpp.

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

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 1564 of file Core.cpp.

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

Obtain the target triple for a module.

See also:
Module::getTargetTriple()

Definition at line 172 of file Core.cpp.

References llvm::unwrap().

Obtain a Type from a module by its registered name.

Definition at line 466 of file Core.cpp.

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

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 149 of file Core.cpp.

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

Create a new, empty module in a specific context.

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

Definition at line 153 of file Core.cpp.

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

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 184 of file Core.cpp.

References llvm::raw_fd_ostream::close(), llvm::sys::fs::F_Text, llvm::raw_fd_ostream::has_error(), llvm::LibFunc::strdup, and llvm::unwrap().

Return a string representation of the module. Use LLVMDisposeMessage to free the string.

See also:
Module::print()

Definition at line 205 of file Core.cpp.

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

void LLVMSetDataLayout ( LLVMModuleRef  M,
const char *  Triple 
)

Set the data layout for a module.

See also:
Module::setDataLayout()

Definition at line 167 of file Core.cpp.

References llvm::unwrap().

void LLVMSetModuleInlineAsm ( LLVMModuleRef  M,
const char *  Asm 
)

Set inline assembly for a module.

See also:
Module::setModuleInlineAsm()

Definition at line 216 of file Core.cpp.

References llvm::unwrap().

void LLVMSetTarget ( LLVMModuleRef  M,
const char *  Triple 
)

Set the target triple for a module.

See also:
Module::setTargetTriple()

Definition at line 176 of file Core.cpp.

References llvm::unwrap().