CIRCT  20.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
 The InstanceGraph op interface, see InstanceGraphInterface.td for more details.
 
 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...