Struct llvm_ir::module::Module

source ·
pub struct Module {
    pub name: String,
    pub source_file_name: String,
    pub data_layout: DataLayout,
    pub target_triple: Option<String>,
    pub functions: Vec<Function>,
    pub func_declarations: Vec<FunctionDeclaration>,
    pub global_vars: Vec<GlobalVariable>,
    pub global_aliases: Vec<GlobalAlias>,
    pub global_ifuncs: Vec<GlobalIFunc>,
    pub inline_assembly: String,
    pub types: Types,
}
Expand description

Fields§

§name: String

The name of the module

§source_file_name: String§data_layout: DataLayout§target_triple: Option<String>§functions: Vec<Function>

Functions which are defined (not just declared) in this Module. See LLVM 14 docs on Functions

§func_declarations: Vec<FunctionDeclaration>

Functions which are declared (but not defined) in this Module. See LLVM 14 docs on Functions

§global_vars: Vec<GlobalVariable>§global_aliases: Vec<GlobalAlias>§global_ifuncs: Vec<GlobalIFunc>§inline_assembly: String§types: Types

Holds a reference to all of the Types used in the Module, and facilitates lookups so you can get a TypeRef to the Type you want.

Implementations§

source§

impl Module

source

pub fn type_of<T: Typed + ?Sized>(&self, t: &T) -> TypeRef

Get the type of anything that is Typed.

source

pub fn get_func_by_name(&self, name: &str) -> Option<&Function>

Get the Function having the given name (if any). Note that functions are named with Strings and not Names.

Note also that this will only find fully defined functions, not FunctionDeclarations.

source

pub fn get_func_decl_by_name(&self, name: &str) -> Option<&FunctionDeclaration>

Get the FunctionDeclaration having the given name (if any). Note that functions are named with Strings and not Names.

Note also that this will only find function declarations, and will not find defined functions (use get_func_by_name() for that).

source

pub fn get_global_var_by_name(&self, name: &Name) -> Option<&GlobalVariable>

Get the GlobalVariable having the given Name (if any).

source

pub fn get_global_alias_by_name(&self, name: &Name) -> Option<&GlobalAlias>

Get the GlobalAlias having the given Name (if any).

source

pub fn get_global_ifunc_by_name(&self, name: &Name) -> Option<&GlobalIFunc>

Get the GlobalIFunc having the given Name (if any).

source

pub fn from_bc_path(path: impl AsRef<Path>) -> Result<Self, String>

Parse the LLVM bitcode (.bc) file at the given path to create a Module

source

pub fn from_ir_path(path: impl AsRef<Path>) -> Result<Self, String>

Parse the LLVM text IR (.ll) file at the given path to create a Module

Trait Implementations§

source§

impl Clone for Module

source§

fn clone(&self) -> Module

Returns a copy of the value. Read more
1.0.0 · source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for T
where T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for T
where T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for T
where U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

source§

impl<T> ToOwned for T
where T: Clone,

§

type Owned = T

The resulting type after obtaining ownership.
source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.