Skip to content

pipeline.def

← pipeline dialect

Persistent dataflow program. Leading specialization arguments remain ordinary SSA values and launch bindings are supplied when the materialized pipeline is issued. The optional scope fixes the artifact boundary that lowering must satisfy.

Operation contract

Property Value
Semantic phase executable
Traits SymbolDefine, IsolatedFromAbove
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 Portable scheduling groups, flows, and stage graph. (terminator pipeline.return.)

Examples

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