Skip to content

func.decl

func dialect

External function declaration. Callable by name via func.call.

Operation contract

Property Value
Semantic phase executable
Traits SymbolDefine
Interfaces FuncLike

Symbol contract

Property Value
Kind function
Defining field callee
Interfaces func_like, callable
Flags declaration

Signature

Kind Name Type Cardinality Description
Operand args any variadic
Result results any variadic
Attribute callee symbol required
Attribute visibility enum Visibility optional
Attribute import_module string optional
Attribute import_symbol string optional
Attribute cc enum CallingConv optional
Attribute purity enum Purity optional
Attribute temperature enum Temperature optional
Attribute inline_policy enum InlinePolicy optional
Attribute target symbol (target) optional
Attribute abi enum ExportAbiKind optional
Attribute abi_attrs dict optional
Attribute export_symbol string optional
Attribute export_attrs dict optional
Attribute predicates predicate_list optional
Attribute retain enum Retain optional

Examples

func.decl @extern_matmul(%a: tensor<[%M]xf32>, %b: tensor<[%K]xf32>) -> (tensor<[%M]xf32>)
func.decl public @exported(%a: f32) -> (f32)
func.decl hot inline @tiny(%a: f32) -> (f32)
func.decl public import("hal") @hal_buffer_view_create(%a: i32) -> (i64)
func.decl import("hal", "buffer_view.create") @hal_buffer_view_create(%a: i32) -> (i64)