'om' Dialect
The Object Model dialect captures design intent from various domains in an object model.
For more information about the Object Model dialect, see the Object Model Dialect Rationale.
Operation definition
om.class.field
(::circt::om::ClassFieldOp)
Syntax:
operation ::= `om.class.field` $sym_name `,` $value `:` type($value) attr-dict
Traits: HasParent
Interfaces: Symbol
Attributes:
Attribute | MLIR Type | Description |
---|---|---|
sym_name | ::mlir::StringAttr | string attribute |
Operands:
Operand | Description |
---|---|
value | any type |
om.class
(::circt::om::ClassOp)
Traits: HasParent mlir::ModuleOp, NoTerminator, SingleBlock, SymbolTable
Interfaces: OpAsmOpInterface, Symbol
Attributes:
Attribute | MLIR Type | Description |
---|---|---|
sym_name | ::mlir::StringAttr | string attribute |
formalParamNames | ::mlir::ArrayAttr | string array attribute |
om.constant
(::circt::om::ConstantOp)
Syntax:
operation ::= `om.constant` $value attr-dict
Traits: AlwaysSpeculatableImplTrait, ConstantLike
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface)
Effects: MemoryEffects::Effect{}
Attributes:
Attribute | MLIR Type | Description |
---|---|---|
value | ::mlir::TypedAttr | TypedAttr instance |
Results:
Result | Description |
---|---|
result | any type |
om.object.field
(::circt::om::ObjectFieldOp)
Syntax:
operation ::= `om.object.field` $object `,` $fieldPath `:` functional-type($object, $result) attr-dict
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), SymbolUserOpInterface
Effects: MemoryEffects::Effect{}
Attributes:
Attribute | MLIR Type | Description |
---|---|---|
fieldPath | ::mlir::ArrayAttr | flat symbol ref array attribute |
Operands:
Operand | Description |
---|---|
object | A type that represents a reference to a Class. |
Results:
Result | Description |
---|---|
result | any type |
om.object
(::circt::om::ObjectOp)
Syntax:
operation ::= `om.object` $className `(` $actualParams `)` `:`
functional-type($actualParams, $result) attr-dict
Traits: AlwaysSpeculatableImplTrait
Interfaces: ConditionallySpeculatable, NoMemoryEffect (MemoryEffectOpInterface), SymbolUserOpInterface
Effects: MemoryEffects::Effect{}
Attributes:
Attribute | MLIR Type | Description |
---|---|---|
className | ::mlir::StringAttr | string attribute |
Operands:
Operand | Description |
---|---|
actualParams | any type |
Results:
Result | Description |
---|---|
result | A type that represents a reference to a Class. |
Attribute definition
SymbolRefAttr
An attribute that wraps a FlatSymbolRefAttr type
Syntax:
#om.sym_ref<
mlir::FlatSymbolRefAttr # ref
>
Parameters:
Parameter | C++ type | Description |
---|---|---|
ref | mlir::FlatSymbolRefAttr |
ReferenceAttr
An attribute that wraps a #hw.innerNameRef with !om.ref type
Syntax:
#om.ref<
circt::hw::InnerRefAttr # innerRef
>
Parameters:
Parameter | C++ type | Description |
---|---|---|
innerRef | circt::hw::InnerRefAttr |
Type definition
ClassType
A type that represents a reference to a Class.
Syntax:
!om.class.type<
mlir::FlatSymbolRefAttr # className
>
Parameters:
Parameter | C++ type | Description |
---|---|---|
className | mlir::FlatSymbolRefAttr |
ReferenceType
A type that represents a reference to a hardware entity.
Syntax: !om.ref
SymbolRefType
A type that represents a reference to a flat symbol reference.
Syntax: !om.sym_ref