Struct melior::ExecutionEngine

source ·
pub struct ExecutionEngine { /* private fields */ }
Expand description

An execution engine.

Implementations§

source§

impl ExecutionEngine

source

pub fn new( module: &Module<'_>, optimization_level: usize, shared_library_paths: &[&str], enable_object_dump: bool ) -> Self

Creates an execution engine.

source

pub fn lookup(&self, name: &str) -> *mut ()

Searches a symbol in a module and returns a pointer to it.

source

pub unsafe fn invoke_packed( &self, name: &str, arguments: &mut [*mut ()] ) -> Result<(), Error>

Invokes a function in a module. The arguments argument includes pointers to results of the function as well as arguments.

Safety

This function modifies memory locations pointed by the arguments argument. If those pointers are invalid or misaligned, calling this function might result in undefined behavior.

source

pub unsafe fn register_symbol(&self, name: &str, ptr: *mut ())

Register a symbol. This symbol will be accessible to the JIT’d codes.

Safety

This function makes a pointer accessible to the execution engine. If a given pointer is invalid or misaligned, calling this function might result in undefined behavior.

source

pub fn dump_to_object_file(&self, path: &str)

Dumps a module to an object file.

Trait Implementations§

source§

impl Drop for ExecutionEngine

source§

fn drop(&mut self)

Executes the destructor for this type. 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, 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.