Skip to content

func.def

func dialect

Function definition. Callable by name via func.call.

Operation contract

Property Value
Semantic phase executable
Traits SymbolDefine, IsolatedFromAbove
Interfaces FuncLike

Symbol contract

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

Signature

Kind Name Type Cardinality Description
Result results any variadic
Attribute callee symbol required
Attribute visibility enum Visibility optional
Attribute cc enum CallingConv optional
Attribute purity enum Purity optional
Attribute temperature enum Temperature optional
Attribute inline_policy enum InlinePolicy optional
Attribute predicates predicate_list 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 retain enum Retain optional
Region body region required Function body. (terminator func.return.)

Examples

func.def @negate(%input: f32) -> (f32) {
  func.return %input : f32
}
func.def public device @entry(%a: f32) -> (f32) {
  func.return %a : f32
}
func.def public pure @add(%a: f32, %b: f32) -> (f32) {
  func.return %a : f32
}
func.def cold noinline @serializer(%a: f32) -> (f32) {
  func.return %a : f32
}