CIRCT

Circuit IR Compilers and Tools

'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:

AttributeMLIR TypeDescription
sym_name::mlir::StringAttrstring attribute

Operands:

OperandDescription
valueany type

om.class (::circt::om::ClassOp)

Traits: HasParent mlir::ModuleOp, NoTerminator, SingleBlock, SymbolTable

Interfaces: OpAsmOpInterface, Symbol

Attributes:

AttributeMLIR TypeDescription
sym_name::mlir::StringAttrstring attribute
formalParamNames::mlir::ArrayAttrstring 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:

AttributeMLIR TypeDescription
value::mlir::TypedAttrTypedAttr instance

Results:

ResultDescription
resultany 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:

AttributeMLIR TypeDescription
fieldPath::mlir::ArrayAttrflat symbol ref array attribute

Operands:

OperandDescription
objectA type that represents a reference to a Class.

Results:

ResultDescription
resultany 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:

AttributeMLIR TypeDescription
className::mlir::StringAttrstring attribute

Operands:

OperandDescription
actualParamsany type

Results:

ResultDescription
resultA 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:

ParameterC++ typeDescription
refmlir::FlatSymbolRefAttr

ReferenceAttr

An attribute that wraps a #hw.innerNameRef with !om.ref type

Syntax:

#om.ref<
  circt::hw::InnerRefAttr   # innerRef
>

Parameters:

ParameterC++ typeDescription
innerRefcirct::hw::InnerRefAttr

Type definition

ClassType

A type that represents a reference to a Class.

Syntax:

!om.class.type<
  mlir::FlatSymbolRefAttr   # className
>

Parameters:

ParameterC++ typeDescription
classNamemlir::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

'om' Dialect Docs