Skip to content

low.invoke

low dialect

Source-typed call edge to an explicitly selected target-Low function. Source-to-Low lowering maps the source operands and results to the helper register signature, proves the helper argument predicates, and normalizes the edge to low.func.call. Authored inline policy has the same meaning as on low.func.call; targets without a Low call ABI may require the normalized edge to inline before emission.

Operation contract

Property Value
Semantic phase executable
Traits UnknownEffects, NoAncestor(low.func.def), NoAncestor(low.kernel.def)
Interfaces CallLike

Signature

Kind Name Type Cardinality Description
Operand operands any variadic
Result results any variadic
Attribute callee symbol (callable) required
Attribute purity enum Purity optional
Attribute inline_policy enum InlinePolicy optional

Examples

%result = low.invoke @extern_add(%lhs, %rhs) : (i32, i32) -> (i32)
%result = low.invoke pure @extern_add(%lhs, %rhs) : (i32, i32) -> (i32)