'wcet' Dialect
A dialect for wcet analysis in speculative High-Level Synthesis.
TODO
Operations
wcet.cast (wcet::CastOp)
Syntax:
operation ::= `wcet.cast` $input attr-dict `:` type($input) `to` type($output)
Traits: AlwaysSpeculatableImplTrait
Interfaces: CastOpInterface, ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
| Operand | Description |
|---|---|
input | any type |
Results:
| Result | Description |
|---|---|
output | any type |
wcet.commit (wcet::CommitOp)
Commit the ouput of the core
Syntax:
operation ::= `wcet.commit` attr-dict ($inputs^ `:` type($inputs))?
Traits: AlwaysSpeculatableImplTrait, HasParent<CoreOp>, Terminator
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Operands:
| Operand | Description |
|---|---|
inputs | variadic of any type |
wcet.constArrayRead (wcet::ConstArrayRead)
Syntax:
operation ::= `wcet.constArrayRead` $index `<` $contents `>` `,` $step attr-dict `:` type($index) `,` type($result)
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
contents | ::mlir::DenseI64ArrayAttr | i64 dense array attribute |
step | ::mlir::IntegerAttr | 64-bit signless integer attribute |
Operands:
| Operand | Description |
|---|---|
index | integer |
Results:
| Result | Description |
|---|---|
result | integer |
wcet.core (wcet::CoreOp)
TODO
TODO
Traits: IsolatedFromAbove
Interfaces: ArgAndResultAttrsOpInterface, CallableOpInterface, FunctionOpInterface, RegionKindInterface, Symbol
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
sym_name | ::mlir::StringAttr | string attribute |
function_type | ::mlir::TypeAttr | type attribute of function type |
arg_attrs | ::mlir::ArrayAttr | Array of dictionary attributes |
res_attrs | ::mlir::ArrayAttr | Array of dictionary attributes |
wcet.core_instance (wcet::CoreInstanceOp)
Instanciate a core
Syntax:
operation ::= `wcet.core_instance` $callee `(` $inputs `)` attr-dict `:` functional-type($inputs, results)
Interfaces: ArgAndResultAttrsOpInterface, CallOpInterface
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
callee | ::mlir::FlatSymbolRefAttr | flat symbol reference attribute |
arg_attrs | ::mlir::ArrayAttr | Array of dictionary attributes |
res_attrs | ::mlir::ArrayAttr | Array of dictionary attributes |
Operands:
| Operand | Description |
|---|---|
inputs | variadic of any type |
Results:
| Result | Description |
|---|---|
| «unnamed» | variadic of any type |
wcet.dontCare (wcet::DontCare)
An invalid valid that can be throw aways
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Results:
| Result | Description |
|---|---|
result | any type |
wcet.dummy (wcet::DummyOp)
Dummy.
Syntax:
operation ::= `wcet.dummy` $inputs `:` type($inputs) `->` qualified(type($outputs)) attr-dict
Dummy operation for longestPath analysis.
Operands:
| Operand | Description |
|---|---|
inputs | variadic of any type |
Results:
| Result | Description |
|---|---|
outputs | variadic of any type |
wcet.gamma (wcet::GammaOp)
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), OpAsmOpInterface
Effects: MemoryEffects::Effect{}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
sym_name | ::mlir::StringAttr | string attribute |
Operands:
| Operand | Description |
|---|---|
select | integer |
inputs | variadic of any type |
Results:
| Result | Description |
|---|---|
result | any type |
wcet.init (wcet::InitOp)
Init.
Syntax:
operation ::= `wcet.init` $name `:` type($result) attr-dict
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
name | ::mlir::FlatSymbolRefAttr | flat symbol reference attribute |
Results:
| Result | Description |
|---|---|
result | any type |
wcet.lut (wcet::LUTOp)
Syntax:
operation ::= `wcet.lut` $index $contents attr-dict `:` functional-type($index, $result)
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), OpAsmOpInterface
Effects: MemoryEffects::Effect{}
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
contents | ::mlir::DenseI64ArrayAttr | i64 dense array attribute |
Operands:
| Operand | Description |
|---|---|
index | integer |
Results:
| Result | Description |
|---|---|
result | integer |
wcet.penalty (wcet::PenaltyOp)
Traits: AttrSizedOperandSegments
Interfaces: InferTypeOpInterface
Attributes:
| Attribute | MLIR Type | Description |
|---|---|---|
depth | ::mlir::IntegerAttr | 32-bit unsigned integer attribute |
Operands:
| Operand | Description |
|---|---|
input | any type |
enable | 1-bit signless integer |
init | any type |
Results:
| Result | Description |
|---|---|
result | any type |