MLIR  16.0.0git
Macros | Functions
ExecutionEngine.h File Reference
#include "mlir-c/IR.h"
#include "mlir-c/Support.h"
+ Include dependency graph for ExecutionEngine.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define DEFINE_C_API_STRUCT(name, storage)
 

Functions

 DEFINE_C_API_STRUCT (MlirExecutionEngine, void)
 
MLIR_CAPI_EXPORTED MlirExecutionEngine mlirExecutionEngineCreate (MlirModule op, int optLevel, int numPaths, const MlirStringRef *sharedLibPaths)
 Creates an ExecutionEngine for the provided ModuleOp. More...
 
MLIR_CAPI_EXPORTED void mlirExecutionEngineDestroy (MlirExecutionEngine jit)
 Destroy an ExecutionEngine instance. More...
 
static bool mlirExecutionEngineIsNull (MlirExecutionEngine jit)
 Checks whether an execution engine is null. More...
 
MLIR_CAPI_EXPORTED MlirLogicalResult mlirExecutionEngineInvokePacked (MlirExecutionEngine jit, MlirStringRef name, void **arguments)
 Invoke a native function in the execution engine by name with the arguments and result of the invoked function passed as an array of pointers. More...
 
MLIR_CAPI_EXPORTED voidmlirExecutionEngineLookupPacked (MlirExecutionEngine jit, MlirStringRef name)
 Lookup the wrapper of the native function in the execution engine with the given name, returns nullptr if the function can't be looked-up. More...
 
MLIR_CAPI_EXPORTED voidmlirExecutionEngineLookup (MlirExecutionEngine jit, MlirStringRef name)
 Lookup a native function in the execution engine by name, returns nullptr if the name can't be looked-up. More...
 
MLIR_CAPI_EXPORTED void mlirExecutionEngineRegisterSymbol (MlirExecutionEngine jit, MlirStringRef name, void *sym)
 Register a symbol with the jit: this symbol will be accessible to the jitted code. More...
 
MLIR_CAPI_EXPORTED void mlirExecutionEngineDumpToObjectFile (MlirExecutionEngine jit, MlirStringRef fileName)
 Dump as an object in fileName. More...
 

Macro Definition Documentation

◆ DEFINE_C_API_STRUCT

#define DEFINE_C_API_STRUCT (   name,
  storage 
)
Value:
struct name { \
storage *ptr; \
}; \
typedef struct name name

Definition at line 25 of file ExecutionEngine.h.

Function Documentation

◆ DEFINE_C_API_STRUCT()

DEFINE_C_API_STRUCT ( MlirExecutionEngine  ,
void   
)

◆ mlirExecutionEngineCreate()

MLIR_CAPI_EXPORTED MlirExecutionEngine mlirExecutionEngineCreate ( MlirModule  op,
int  optLevel,
int  numPaths,
const MlirStringRef sharedLibPaths 
)

Creates an ExecutionEngine for the provided ModuleOp.

The ModuleOp is expected to be "translatable" to LLVM IR (only contains operations in dialects that implement the LLVMTranslationDialectInterface). The module ownership stays with the client and can be destroyed as soon as the call returns. optLevel is the optimization level to be used for transformation and code generation. LLVM passes at optLevel are run before code generation. The number and array of paths corresponding to shared libraries that will be loaded are specified via numPaths and sharedLibPaths respectively. TODO: figure out other options.

Definition at line 21 of file ExecutionEngine.cpp.

References mlir::ExecutionEngine::create(), MlirStringRef::data, mlir::makeOptimizingTransformer, mlir::registerLLVMDialectTranslation(), mlir::ExecutionEngineOptions::transformer, unwrap(), and wrap().

Referenced by PYBIND11_MODULE().

◆ mlirExecutionEngineDestroy()

MLIR_CAPI_EXPORTED void mlirExecutionEngineDestroy ( MlirExecutionEngine  jit)

Destroy an ExecutionEngine instance.

Definition at line 65 of file ExecutionEngine.cpp.

References unwrap().

◆ mlirExecutionEngineDumpToObjectFile()

MLIR_CAPI_EXPORTED void mlirExecutionEngineDumpToObjectFile ( MlirExecutionEngine  jit,
MlirStringRef  fileName 
)

Dump as an object in fileName.

Definition at line 107 of file ExecutionEngine.cpp.

References unwrap().

Referenced by mlirExecutionEngineIsNull().

◆ mlirExecutionEngineInvokePacked()

MLIR_CAPI_EXPORTED MlirLogicalResult mlirExecutionEngineInvokePacked ( MlirExecutionEngine  jit,
MlirStringRef  name,
void **  arguments 
)

Invoke a native function in the execution engine by name with the arguments and result of the invoked function passed as an array of pointers.

The function must have been tagged with the llvm.emit_c_interface attribute. Returns a failure if the execution fails for any reason (the function name can't be resolved for instance).

Definition at line 70 of file ExecutionEngine.cpp.

References mlir::Error, mlir::failure(), mlir::success(), unwrap(), and wrap().

Referenced by mlirExecutionEngineIsNull().

◆ mlirExecutionEngineIsNull()

static bool mlirExecutionEngineIsNull ( MlirExecutionEngine  jit)
inlinestatic

◆ mlirExecutionEngineLookup()

MLIR_CAPI_EXPORTED void* mlirExecutionEngineLookup ( MlirExecutionEngine  jit,
MlirStringRef  name 
)

Lookup a native function in the execution engine by name, returns nullptr if the name can't be looked-up.

Definition at line 88 of file ExecutionEngine.cpp.

References unwrap().

Referenced by mlirExecutionEngineIsNull().

◆ mlirExecutionEngineLookupPacked()

MLIR_CAPI_EXPORTED void* mlirExecutionEngineLookupPacked ( MlirExecutionEngine  jit,
MlirStringRef  name 
)

Lookup the wrapper of the native function in the execution engine with the given name, returns nullptr if the function can't be looked-up.

Definition at line 80 of file ExecutionEngine.cpp.

References unwrap().

Referenced by mlirExecutionEngineIsNull().

◆ mlirExecutionEngineRegisterSymbol()

MLIR_CAPI_EXPORTED void mlirExecutionEngineRegisterSymbol ( MlirExecutionEngine  jit,
MlirStringRef  name,
void sym 
)

Register a symbol with the jit: this symbol will be accessible to the jitted code.

Definition at line 96 of file ExecutionEngine.cpp.

References unwrap().

Referenced by mlirExecutionEngineIsNull().