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) {
}