Skip to content

pipeline.def

← pipeline dialect

Persistent dataflow program. Leading specialization arguments remain ordinary SSA values and typed run arguments are supplied by each invocation. Their source types are independent of the eventual target export ABI. The optional scope fixes the artifact boundary that lowering must satisfy.

Operation contract

Property Value
Semantic phase executable
Traits SymbolDefine, IsolatedFromAbove, ImplicitTerminator(pipeline.finish)
Interfaces FuncLike

Symbol contract

Property Value
Kind pipeline
Defining field callee
Interfaces func_like, pipeline
Flags —

Signature

Kind Name Type Cardinality Description
Attribute callee symbol required —
Attribute scope enum PipelineScope optional —
Attribute visibility enum Visibility optional —
Attribute retain enum Retain optional —
Attribute target symbol (target) optional —
Attribute predicates predicate_list optional —
Attribute specialization_count i64 required Number of leading staged pipeline arguments.
Region body region required Construction of invocation-owned storage and independently progressing strands. (terminator pipeline.finish.)

Examples

pipeline.def<kernel> target(@array) @resident() run(%input: buffer, %output: buffer) {
}
pipeline.def @heterogeneous(%batch: index) run(%input: buffer) {
}