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)