'spechls' Dialect
A dialect for speculative High-Level Synthesis.
TODO
Operations
spechls.alpha
(spechls::AlphaOp)
Operands:
Operand | Description |
---|
array | array type |
index | integer |
value | any type |
we | 1-bit signless integer |
Results:
Result | Description |
---|
result | array type |
spechls.call
(spechls::CallOp)
Syntax:
operation ::= `spechls.call` $callee `(` $arguments `)` attr-dict `:` functional-type($arguments, $result)
Interfaces: CallOpInterface
, OpAsmOpInterface
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 |
---|
arguments | variadic of any type |
Results:
Result | Description |
---|
result | any type |
spechls.commit
(spechls::CommitOp)
Syntax:
operation ::= `spechls.commit` $enable (`,` $value^ `:` type($value))? attr-dict
Traits: HasParent<TaskOp>
, Terminator
Operands:
Operand | Description |
---|
enable | 1-bit signless integer |
value | any type |
spechls.delay
(spechls::DelayOp)
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 |
spechls.exit
(spechls::ExitOp)
Traits: HasParent<KernelOp>
, ReturnLike
, Terminator
Interfaces: RegionBranchTerminatorOpInterface
Operands:
Operand | Description |
---|
guard | 1-bit signless integer |
values | variadic of any type |
spechls.field
(spechls::FieldOp)
Syntax:
operation ::= `spechls.field` `<` $name `>` $input attr-dict `:` type($input)
Interfaces: InferTypeOpInterface
Attributes:
Attribute | MLIR Type | Description |
---|
name | ::mlir::StringAttr | string attribute |
Operands:
Operand | Description |
---|
input | structure type |
Results:
Result | Description |
---|
result | any type |
spechls.fifo
(spechls::FIFOOp)
Syntax:
operation ::= `spechls.fifo` `<` $depth `>` $input attr-dict `:` functional-type($input, $result)
Interfaces: OpAsmOpInterface
Attributes:
Attribute | MLIR Type | Description |
---|
depth | ::mlir::IntegerAttr | 32-bit unsigned integer attribute |
Operands:
Operand | Description |
---|
input | structure type |
Results:
Result | Description |
---|
result | structure type |
spechls.fsm
(spechls::FSMOp)
Syntax:
operation ::= `spechls.fsm` $name `,` $mispec `,` $state attr-dict `:` type($mispec) `,` type($state)
Interfaces: InferTypeOpInterface
Attributes:
Attribute | MLIR Type | Description |
---|
name | ::mlir::StringAttr | string attribute |
Operands:
Operand | Description |
---|
mispec | structure type |
state | structure type |
Results:
Result | Description |
---|
result | structure type |
spechls.fsm_command
(spechls::FSMCommandOp)
Syntax:
operation ::= `spechls.fsm_command` $name `,` $state attr-dict `:` functional-type($state, $result)
Attributes:
Attribute | MLIR Type | Description |
---|
name | ::mlir::StringAttr | string attribute |
Operands:
Operand | Description |
---|
state | structure type |
Results:
Result | Description |
---|
result | structure type |
spechls.gamma
(spechls::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 |
spechls.kernel
(spechls::KernelOp)
Traits: IsolatedFromAbove
, SingleBlock
Interfaces: 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 |
spechls.load
(spechls::LoadOp)
Syntax:
operation ::= `spechls.load` $array `[` $index `:` type($index) `]` attr-dict `:` type($array)
Interfaces: InferTypeOpInterface
Operands:
Operand | Description |
---|
array | array type |
index | integer |
Results:
Result | Description |
---|
result | any type |
spechls.lut
(spechls::LUTOp)
Syntax:
operation ::= `spechls.lut` $index $contents attr-dict `:` functional-type($index, $result)
Interfaces: OpAsmOpInterface
Attributes:
Attribute | MLIR Type | Description |
---|
contents | ::mlir::DenseI64ArrayAttr | i64 dense array attribute |
Operands:
Operand | Description |
---|
index | integer |
Results:
Result | Description |
---|
result | integer |
spechls.mu
(spechls::MuOp)
Traits: AlwaysSpeculatableImplTrait
, SameOperandsAndResultType
Interfaces: ConditionallySpeculatable
, InferTypeOpInterface
, NoMemoryEffect (MemoryEffectOpInterface)
, OpAsmOpInterface
Effects: MemoryEffects::Effect{}
Attributes:
Attribute | MLIR Type | Description |
---|
sym_name | ::mlir::StringAttr | string attribute |
Operands:
Operand | Description |
---|
initValue | any type |
loopValue | any type |
Results:
Result | Description |
---|
result | any type |
spechls.pack
(spechls::PackOp)
Syntax:
operation ::= `spechls.pack` $inputs attr-dict `:` functional-type($inputs, $result)
Operands:
Operand | Description |
---|
inputs | variadic of any type |
Results:
Result | Description |
---|
result | structure type |
spechls.print
(spechls::PrintOp)
Syntax:
operation ::= `spechls.print` $state `,` $enable `,` $format (`,` $args^ `:` type($args))? attr-dict
Interfaces: InferTypeOpInterface
, OpAsmOpInterface
Attributes:
Attribute | MLIR Type | Description |
---|
format | ::mlir::StringAttr | string attribute |
Operands:
Operand | Description |
---|
state | 32-bit signless integer |
enable | 1-bit signless integer |
args | variadic of any type |
Results:
Result | Description |
---|
new_state | 32-bit signless integer |
spechls.rewind
(spechls::RewindOp)
Syntax:
operation ::= `spechls.rewind` `<` $depths `>` $input `:` type($input)
(`,` $rewind^ `:` type($rewind) (`,` $writeCommand^ `:` type($writeCommand))?)? attr-dict
Traits: AttrSizedOperandSegments
Interfaces: InferTypeOpInterface
Attributes:
Attribute | MLIR Type | Description |
---|
depths | ::mlir::DenseI64ArrayAttr | i64 dense array attribute |
Operands:
Operand | Description |
---|
input | any type |
rewind | integer |
writeCommand | 1-bit signless integer |
Results:
Result | Description |
---|
result | any type |
spechls.rollback
(spechls::RollbackOp)
Syntax:
operation ::= `spechls.rollback` `<` $depths `,` $offset `>` $input `:` type($input) `,` $rollback `:` type($rollback) `,`
$writeCommand `:` type($writeCommand) attr-dict
Interfaces: InferTypeOpInterface
Attributes:
Attribute | MLIR Type | Description |
---|
depths | ::mlir::DenseI64ArrayAttr | i64 dense array attribute |
offset | ::mlir::IntegerAttr | 64-bit signless integer attribute |
Operands:
Operand | Description |
---|
input | any type |
rollback | integer |
writeCommand | 1-bit signless integer |
Results:
Result | Description |
---|
result | any type |
spechls.sync
(spechls::SyncOp)
Syntax:
operation ::= `spechls.sync` $inputs attr-dict `:` type($inputs)
Interfaces: InferTypeOpInterface
Operands:
Operand | Description |
---|
inputs | variadic of any type |
Results:
Result | Description |
---|
result | any type |
spechls.task
(spechls::TaskOp)
Traits: IsolatedFromAbove
, SingleBlock
Interfaces: RegionKindInterface
Attributes:
Attribute | MLIR Type | Description |
---|
sym_name | ::mlir::StringAttr | string attribute |
Operands:
Operand | Description |
---|
args | variadic of any type |
Results:
Result | Description |
---|
result | any type |
spechls.unpack
(spechls::UnpackOp)
Syntax:
operation ::= `spechls.unpack` $input attr-dict `:` type($input)
Interfaces: InferTypeOpInterface
Operands:
Operand | Description |
---|
input | structure type |
Results:
Result | Description |
---|
results | variadic of any type |
Types
ArrayType
Array type
Syntax:
!spechls.array<
unsigned, # size
::mlir::Type # element_type
>
Parameters:
Parameter | C++ type | Description |
---|
size | unsigned | |
element_type | ::mlir::Type | |
StructType
Structure type
Parameters:
Parameter | C++ type | Description |
---|
name | ::llvm::StringRef | struct name |
fieldNames | ::llvm::ArrayRef<::std::string> | |
fieldTypes | ::llvm::ArrayRef<::mlir::Type> | |
Last updated on 27 Jun 2025
Published on 27 Jun 2025