In-Process Compiler API

IREE provides access to its MLIR-based compiler via a dedicated set of APIs presented here.


Compiler invocation API.

This package defines Python API wrappers around the IREE compiler C embedding API. Refer to the C documentation in bindings/c/iree/compiler/embedding_api.h for the most up to date information.

The objects in the C API are represented in Python as classes:

  • iree_compiler_error_t: Never escapes (raised as exceptions).

  • iree_compiler_session_t: Session class.

  • iree_compiler_invocation_t: Invocation class.

  • iree_compiler_source_t: Source class.

  • iree_compiler_output_t: Output class.

In MLIR parlance, the Session wraps an MLIRContext with a set of flags for configuring the compiler and context setup. Invocation wraps a Module in the process of being compiled.

class iree.compiler.api.Invocation(session: iree.compiler.api.ctypes_dl.Session)
close()
enable_console_diagnostics()
execute(pipeline: iree.compiler.api.ctypes_dl.PipelineType = PipelineType.IREE_COMPILER_PIPELINE_STD) bool
execute_text_pass_pipeline(text_pipeline_spec: str) bool
export_module()

Exports the module.

import_module(module_op) bool
output_ir(output: iree.compiler.api.ctypes_dl.Output)
output_ir_bytecode(output: iree.compiler.api.ctypes_dl.Output, bytecode_version: int = - 1)
output_vm_bytecode(output: iree.compiler.api.ctypes_dl.Output)
parse_source(source: iree.compiler.api.ctypes_dl.Source) bool
property session: iree.compiler.api.ctypes_dl.Session
class iree.compiler.api.Output(output_p: ctypes.c_void_p)

Wraps an iree_compiler_output_t.

close()
keep() iree.compiler.api.ctypes_dl.Output
map_memory() memoryview
static open_file(file_path: str) iree.compiler.api.ctypes_dl.Output
static open_membuffer() iree.compiler.api.ctypes_dl.Output
write(buffer)
class iree.compiler.api.Session
close()
property context
get_flags(non_default_only: bool = False) Sequence[str]
invocation() iree.compiler.api.ctypes_dl.Invocation
set_flags(*flags: str)
class iree.compiler.api.Source(session: iree.compiler.api.ctypes_dl.Session, source_p: ctypes.c_void_p, backing_ref)

Wraps an iree_compiler_source_t.

close()
static open_file(session: iree.compiler.api.ctypes_dl.Session, file_path: str) iree.compiler.api.ctypes_dl.Source
static wrap_buffer(session: iree.compiler.api.ctypes_dl.Session, buffer, *, buffer_name: str = 'source.mlir') iree.compiler.api.ctypes_dl.Source