CIRCT  20.0.0git
Namespaces | Classes | Typedefs | Functions
circt::om Namespace Reference

Namespaces

 evaluator
 

Classes

struct  Evaluator
 An Evaluator, which is constructed with an IR module and can instantiate Objects. More...
 
struct  PathElement
 A module name, and the name of an instance inside that module. More...
 

Typedefs

using Object = evaluator::ObjectValue
 
using EvaluatorValuePtr = evaluator::EvaluatorValuePtr
 

Functions

SmallVector< EvaluatorValuePtrgetEvaluatorValuesFromAttributes (MLIRContext *context, ArrayRef< Attribute > attributes)
 
static mlir::Diagnostic & operator<< (mlir::Diagnostic &diag, const evaluator::EvaluatorValue &evaluatorValue)
 Helper to enable printing objects in Diagnostics. More...
 
static mlir::Diagnostic & operator<< (mlir::Diagnostic &diag, const EvaluatorValuePtr &evaluatorValue)
 Helper to enable printing objects in Diagnostics. More...
 
std::unique_ptr< mlir::Pass > createOMLinkModulesPass ()
 
std::unique_ptr< mlir::Pass > createFreezePathsPass (std::function< StringAttr(Operation *)> getOpNameFallback={})
 
std::unique_ptr< mlir::Pass > createVerifyObjectFieldsPass ()
 
bool isMapKeyValuePairType (mlir::Type)
 
ParseResult parseBasePath (MLIRContext *context, StringRef spelling, PathAttr &path)
 Parse a target string of the form "Foo/bar:Bar/baz" in to a base path. More...
 
ParseResult parsePath (MLIRContext *context, StringRef spelling, PathAttr &path, StringAttr &module, StringAttr &ref, StringAttr &field)
 Parse a target string in to a path. More...
 

Typedef Documentation

◆ EvaluatorValuePtr

Definition at line 412 of file Evaluator.h.

◆ Object

Definition at line 411 of file Evaluator.h.

Function Documentation

◆ createFreezePathsPass()

std::unique_ptr< mlir::Pass > circt::om::createFreezePathsPass ( std::function< StringAttr(Operation *)>  getOpNameFallback = {})

Definition at line 327 of file FreezePaths.cpp.

Referenced by circt::firtool::populateFinalizeIR().

◆ createOMLinkModulesPass()

std::unique_ptr< mlir::Pass > circt::om::createOMLinkModulesPass ( )

Definition at line 300 of file LinkModules.cpp.

◆ createVerifyObjectFieldsPass()

std::unique_ptr< mlir::Pass > circt::om::createVerifyObjectFieldsPass ( )

◆ getEvaluatorValuesFromAttributes()

SmallVector< evaluator::EvaluatorValuePtr > circt::om::getEvaluatorValuesFromAttributes ( MLIRContext *  context,
ArrayRef< Attribute >  attributes 
)

Definition at line 34 of file Evaluator.cpp.

◆ isMapKeyValuePairType()

bool circt::om::isMapKeyValuePairType ( mlir::Type  type)

Definition at line 43 of file OMTypes.cpp.

◆ operator<<() [1/2]

static mlir::Diagnostic& circt::om::operator<< ( mlir::Diagnostic &  diag,
const evaluator::EvaluatorValue evaluatorValue 
)
inlinestatic

Helper to enable printing objects in Diagnostics.

Definition at line 527 of file Evaluator.h.

References assert().

◆ operator<<() [2/2]

static mlir::Diagnostic& circt::om::operator<< ( mlir::Diagnostic &  diag,
const EvaluatorValuePtr evaluatorValue 
)
inlinestatic

Helper to enable printing objects in Diagnostics.

Definition at line 549 of file Evaluator.h.

◆ parseBasePath()

ParseResult circt::om::parseBasePath ( MLIRContext *  context,
StringRef  spelling,
PathAttr &  path 
)

Parse a target string of the form "Foo/bar:Bar/baz" in to a base path.

Definition at line 177 of file OMUtils.cpp.

Referenced by parseBasePathString().

◆ parsePath()

ParseResult circt::om::parsePath ( MLIRContext *  context,
StringRef  spelling,
PathAttr &  path,
StringAttr &  module,
StringAttr &  ref,
StringAttr &  field 
)

Parse a target string in to a path.

"Foo/bar:Bar/baz:Baz>wire.a[1]" |-----------—| Path |–| Module |–| Ref |—| Field

Definition at line 182 of file OMUtils.cpp.

Referenced by parsePathString().