3.3. Modules

A module is a compilation unit. It defines a set of related functions, global variables and metadata. In the IR layer, a module is representated by the Module class.

class llvmlite.ir.Module(name='')

Create a module. The optional name, a Python string, can be specified for informational purposes.

Modules have the following methods and attributes:


Add the given globalvalue (a GlobalValue) to this module. It should have a unique name in the whole module.


Add an unnamed metadata node to the module with the given operands (a list of metadata-compatible values). If another metadata node with equal operands already exists in the module, it is reused instead. A MDValue is returned.


Add a named metadata with the given name. A NamedMetaData is returned.


Get the global value (a GlobalValue) with the given name. KeyError is raised if it doesn’t exist.


Return the named metadata with the given name. KeyError is raised if it doesn’t exist.


Return a unique name accross the whole module. name is the desired name, but a variation can be returned if it is already in use.


A string representing the data layout in LLVM format.


The list of functions (as Function instances) declared or defined in the module.


An iterable of global values in this module.


A string representing the target architecture in LLVM “triple” form.