CIRCT  19.0.0git
Classes | Namespaces | Typedefs | Functions
Evaluator.h File Reference
#include "circt/Dialect/OM/OMOps.h"
#include "circt/Support/LLVM.h"
#include "mlir/IR/BuiltinOps.h"
#include "mlir/IR/Diagnostics.h"
#include "mlir/IR/Location.h"
#include "mlir/IR/MLIRContext.h"
#include "mlir/IR/SymbolTable.h"
#include "mlir/Support/LogicalResult.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallString.h"
#include <queue>
#include <utility>
Include dependency graph for Evaluator.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

struct  circt::om::evaluator::EvaluatorValue
 Base class for evaluator runtime values. More...
 
struct  circt::om::evaluator::ReferenceValue
 Values which can be used as pointers to different values. More...
 
struct  circt::om::evaluator::AttributeValue
 Values which can be directly representable by MLIR attributes. More...
 
struct  circt::om::evaluator::ListValue
 A List which contains variadic length of elements with the same type. More...
 
struct  circt::om::evaluator::MapValue
 A Map value. More...
 
struct  circt::om::evaluator::ObjectValue
 A composite Object, which has a type and fields. More...
 
struct  circt::om::evaluator::TupleValue
 Tuple values. More...
 
struct  circt::om::evaluator::BasePathValue
 A Basepath value. More...
 
struct  circt::om::evaluator::PathValue
 A Path value. More...
 
struct  circt::om::Evaluator
 An Evaluator, which is constructed with an IR module and can instantiate Objects. More...
 

Namespaces

 circt
 This file defines an intermediate representation for circuits acting as an abstraction for constraints defined over an SMT's solver context.
 
 circt::om
 
 circt::om::evaluator
 

Typedefs

using circt::om::evaluator::EvaluatorValuePtr = std::shared_ptr< EvaluatorValue >
 A value of an object in memory. More...
 
using circt::om::evaluator::ObjectFields = SmallDenseMap< StringAttr, EvaluatorValuePtr >
 The fields of a composite Object, currently represented as a map. More...
 
using circt::om::Object = evaluator::ObjectValue
 
using circt::om::EvaluatorValuePtr = evaluator::EvaluatorValuePtr
 

Functions

static LogicalResult circt::om::evaluator::finalizeEvaluatorValue (EvaluatorValuePtr &value)
 
SmallVector< EvaluatorValuePtrcirct::om::getEvaluatorValuesFromAttributes (MLIRContext *context, ArrayRef< Attribute > attributes)
 
static mlir::Diagnostic & circt::om::operator<< (mlir::Diagnostic &diag, const evaluator::EvaluatorValue &evaluatorValue)
 Helper to enable printing objects in Diagnostics. More...
 
static mlir::Diagnostic & circt::om::operator<< (mlir::Diagnostic &diag, const EvaluatorValuePtr &evaluatorValue)
 Helper to enable printing objects in Diagnostics. More...