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)