|
CIRCT 24.0.0git
|
An Evaluator, which is constructed with an IR module and can instantiate Objects. More...
#include <Evaluator.h>

Classes | |
| struct | DebugNesting |
| RAII helper to increment/decrement debugNesting. More... | |
Public Types | |
| using | ActualParameters = ArrayRef< EvaluatorValuePtr > |
Public Member Functions | |
| Evaluator (ModuleOp mod) | |
| Construct an Evaluator with an IR module. | |
| FailureOr< evaluator::EvaluatorValuePtr > | instantiate (StringAttr className, ArrayRef< EvaluatorValuePtr > actualParams) |
| Instantiate an Object with its class name and actual parameters. | |
| mlir::ModuleOp | getModule () |
| Get the Module this Evaluator is built from. | |
| FailureOr< evaluator::EvaluatorValuePtr > | getPartiallyEvaluatedValue (Type type, Location loc) |
Private Member Functions | |
| FailureOr< evaluator::EvaluatorValuePtr > | instantiateImpl (StringAttr className, ArrayRef< EvaluatorValuePtr > actualParams) |
| FailureOr< EvaluatorValuePtr > | getOrCreateValue (Value value, ActualParameters actualParams, Location loc) |
| FailureOr< EvaluatorValuePtr > | evaluateValue (Value value, ActualParameters actualParams, Location loc) |
| Evaluate a Value in a Class body according to the small expression grammar described in the rationale document. | |
| FailureOr< EvaluatorValuePtr > | evaluateParameter (BlockArgument formalParam, ActualParameters actualParams, Location loc) |
| Evaluator dispatch functions for the small expression grammar. | |
| FailureOr< EvaluatorValuePtr > | evaluateConstant (ConstantOp op, ActualParameters actualParams, Location loc) |
| Evaluator dispatch function for constants. | |
| FailureOr< EvaluatorValuePtr > | evaluateObjectInstance (StringAttr className, ActualParameters actualParams, Location loc) |
| Instantiate an Object with its class name and actual parameters. | |
| FailureOr< EvaluatorValuePtr > | evaluateElaboratedObject (ElaboratedObjectOp op, ActualParameters actualParams, Location loc) |
| FailureOr< EvaluatorValuePtr > | evaluateListCreate (ListCreateOp op, ActualParameters actualParams, Location loc) |
| Evaluator dispatch function for List creation. | |
| FailureOr< EvaluatorValuePtr > | evaluateListConcat (ListConcatOp op, ActualParameters actualParams, Location loc) |
| Evaluator dispatch function for List concatenation. | |
| FailureOr< evaluator::EvaluatorValuePtr > | evaluateBasePathCreate (FrozenBasePathCreateOp op, ActualParameters actualParams, Location loc) |
| FailureOr< evaluator::EvaluatorValuePtr > | evaluatePathCreate (FrozenPathCreateOp op, ActualParameters actualParams, Location loc) |
| FailureOr< evaluator::EvaluatorValuePtr > | evaluateEmptyPath (FrozenEmptyPathOp op, ActualParameters actualParams, Location loc) |
| FailureOr< evaluator::EvaluatorValuePtr > | evaluateUnknownValue (UnknownValueOp op, Location loc) |
| Evaluate an unknown value. | |
| FailureOr< evaluator::EvaluatorValuePtr > | createUnknownValue (Type type, Location loc) |
| Create an unknown value of the specified type. | |
| raw_ostream & | dbgs (unsigned extra=0) |
| llvm::indent | indent (unsigned extra=0) |
Private Attributes | |
| SymbolTable | symbolTable |
| The symbol table for the IR module the Evaluator was constructed with. | |
| DenseMap< Value, std::shared_ptr< evaluator::EvaluatorValue > > | objects |
| Evaluator value storage for the current instantiation. | |
| unsigned | debugNesting = 0 |
| Current nesting depth for debug output indentation. | |
An Evaluator, which is constructed with an IR module and can instantiate Objects.
Further refinement is expected.
Definition at line 300 of file Evaluator.h.
| using circt::om::Evaluator::ActualParameters = ArrayRef<EvaluatorValuePtr> |
Definition at line 315 of file Evaluator.h.
| circt::om::Evaluator::Evaluator | ( | ModuleOp | mod | ) |
Construct an Evaluator with an IR module.
Definition at line 317 of file Evaluator.cpp.
|
private |
Create an unknown value of the specified type.
Definition at line 847 of file Evaluator.cpp.
|
inlineprivate |
Definition at line 384 of file Evaluator.h.
References debugNesting.
|
private |
Definition at line 792 of file Evaluator.cpp.
|
private |
Evaluator dispatch function for constants.
Definition at line 669 of file Evaluator.cpp.
References circt::om::evaluator::AttributeValue::get.
|
private |
Definition at line 677 of file Evaluator.cpp.
|
private |
Definition at line 839 of file Evaluator.cpp.
|
private |
Evaluator dispatch function for List concatenation.
Definition at line 753 of file Evaluator.cpp.
|
private |
Evaluator dispatch function for List creation.
Definition at line 719 of file Evaluator.cpp.
|
private |
Instantiate an Object with its class name and actual parameters.
Definition at line 448 of file Evaluator.cpp.
|
private |
Evaluator dispatch functions for the small expression grammar.
Evaluator dispatch function for parameters.
Definition at line 660 of file Evaluator.cpp.
|
private |
Definition at line 816 of file Evaluator.cpp.
|
private |
Evaluate an unknown value.
Definition at line 892 of file Evaluator.cpp.
|
private |
Evaluate a Value in a Class body according to the small expression grammar described in the rationale document.
The actual parameters are the values supplied at the current instantiation of the Class being evaluated.
Definition at line 605 of file Evaluator.cpp.
| ModuleOp circt::om::Evaluator::getModule | ( | ) |
Get the Module this Evaluator is built from.
Definition at line 320 of file Evaluator.cpp.
|
private |
Definition at line 380 of file Evaluator.cpp.
References circt::om::evaluator::PathValue::getEmptyPath().
| FailureOr< evaluator::EvaluatorValuePtr > circt::om::Evaluator::getPartiallyEvaluatedValue | ( | Type | type, |
| Location | loc | ||
| ) |
Definition at line 346 of file Evaluator.cpp.
References circt::om::evaluator::AttributeValue::get.
|
inlineprivate |
Definition at line 388 of file Evaluator.h.
References debugNesting.
| FailureOr< std::shared_ptr< evaluator::EvaluatorValue > > circt::om::Evaluator::instantiate | ( | StringAttr | className, |
| ArrayRef< EvaluatorValuePtr > | actualParams | ||
| ) |
Instantiate an Object with its class name and actual parameters.
Definition at line 538 of file Evaluator.cpp.
Referenced by omEvaluatorInstantiate().
|
private |
Definition at line 574 of file Evaluator.cpp.
|
private |
Current nesting depth for debug output indentation.
Definition at line 375 of file Evaluator.h.
|
private |
Evaluator value storage for the current instantiation.
Definition at line 371 of file Evaluator.h.
|
private |
The symbol table for the IR module the Evaluator was constructed with.
Used to look up class definitions.
Definition at line 368 of file Evaluator.h.