From bb4d509937ec6a8e71e08e77d736fe98468ac528 Mon Sep 17 00:00:00 2001 From: MrAzteca Date: Tue, 19 Dec 2023 13:59:48 +0100 Subject: [PATCH] Add support for `ExecutionEngine::lookup()`. (#384) --- melior/src/execution_engine.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/melior/src/execution_engine.rs b/melior/src/execution_engine.rs index c55777bf15..2a77f29d08 100644 --- a/melior/src/execution_engine.rs +++ b/melior/src/execution_engine.rs @@ -1,7 +1,8 @@ use crate::{ir::Module, logical_result::LogicalResult, string_ref::StringRef, Error}; use mlir_sys::{ mlirExecutionEngineCreate, mlirExecutionEngineDestroy, mlirExecutionEngineDumpToObjectFile, - mlirExecutionEngineInvokePacked, mlirExecutionEngineRegisterSymbol, MlirExecutionEngine, + mlirExecutionEngineInvokePacked, mlirExecutionEngineLookup, mlirExecutionEngineRegisterSymbol, + MlirExecutionEngine, }; /// An execution engine. @@ -34,6 +35,11 @@ impl ExecutionEngine { } } + /// Searches a symbol in a module and returns a pointer to it. + pub fn lookup(&self, name: &str) -> *mut () { + unsafe { mlirExecutionEngineLookup(self.raw, StringRef::new(name).to_raw()) as *mut () } + } + /// Invokes a function in a module. The `arguments` argument includes /// pointers to results of the function as well as arguments. ///