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. Each source value maps to one register-typed value. Views require storage and layout information beyond that carrier and are not accepted as operands or results; use a source helper taking views or pass buffers and offsets explicitly. 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 effect_contract enum EffectContract 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)