CIRCT
20.0.0git
|
This is intended to be the base class for all emission patterns matching on operations. More...
#include <EmissionPattern.h>
Public Member Functions | |
OpEmissionPatternBase (StringRef operationName, MLIRContext *context) | |
virtual | ~OpEmissionPatternBase ()=default |
virtual MatchResult | matchInlinable (Value value)=0 |
Checks if this pattern is applicable to the given value to emit an inlinable expression. More... | |
virtual bool | matchStatement (mlir::Operation *op)=0 |
Checks if this pattern is applicable to the given operation for statement emission. More... | |
virtual void | emitInlined (mlir::Value value, EmissionPrinter &p)=0 |
Emit the expression for the given value. More... | |
virtual void | emitStatement (mlir::Operation *op, EmissionPrinter &p)=0 |
Emit zero or more statements for the given operation. More... | |
Public Member Functions inherited from circt::ExportSystemC::PatternBase | |
PatternBase (const void *rootValue) | |
const void * | getRootValue () const |
Get a unique identifier for the C++ type the pattern is matching on. More... | |
Additional Inherited Members | |
Static Public Member Functions inherited from circt::ExportSystemC::PatternBase | |
template<typename E , typename... Args> | |
static std::unique_ptr< E > | create (Args &&...args) |
This is intended to be the base class for all emission patterns matching on operations.
Definition at line 115 of file EmissionPattern.h.
|
inline |
Definition at line 116 of file EmissionPattern.h.
|
virtualdefault |
|
pure virtual |
Emit the expression for the given value.
Implemented in circt::ExportSystemC::OpEmissionPattern< Op >, circt::ExportSystemC::OpEmissionPattern< BindPortOp >, circt::ExportSystemC::OpEmissionPattern< ReturnOp >, circt::ExportSystemC::OpEmissionPattern< CallIndirectOp >, circt::ExportSystemC::OpEmissionPattern< VariableOp >, circt::ExportSystemC::OpEmissionPattern< FuncOp >, circt::ExportSystemC::OpEmissionPattern< CallOp >, circt::ExportSystemC::OpEmissionPattern< AssignOp >, and circt::ExportSystemC::OpEmissionPattern< MemberAccessOp >.
|
pure virtual |
Emit zero or more statements for the given operation.
Implemented in circt::ExportSystemC::OpEmissionPattern< Op >, circt::ExportSystemC::OpEmissionPattern< BindPortOp >, circt::ExportSystemC::OpEmissionPattern< ReturnOp >, circt::ExportSystemC::OpEmissionPattern< CallIndirectOp >, circt::ExportSystemC::OpEmissionPattern< VariableOp >, circt::ExportSystemC::OpEmissionPattern< FuncOp >, circt::ExportSystemC::OpEmissionPattern< CallOp >, circt::ExportSystemC::OpEmissionPattern< AssignOp >, and circt::ExportSystemC::OpEmissionPattern< MemberAccessOp >.
|
pure virtual |
Checks if this pattern is applicable to the given value to emit an inlinable expression.
Additionally returns information such as the precedence to the pattern where this pattern's result is to be inlined.
Implemented in CallIndirectEmitter, CallEmitter, FuncEmitter, VariableEmitter, MemberAccessEmitter, circt::ExportSystemC::OpEmissionPattern< Op >, circt::ExportSystemC::OpEmissionPattern< BindPortOp >, circt::ExportSystemC::OpEmissionPattern< ReturnOp >, circt::ExportSystemC::OpEmissionPattern< CallIndirectOp >, circt::ExportSystemC::OpEmissionPattern< VariableOp >, circt::ExportSystemC::OpEmissionPattern< FuncOp >, circt::ExportSystemC::OpEmissionPattern< CallOp >, circt::ExportSystemC::OpEmissionPattern< AssignOp >, and circt::ExportSystemC::OpEmissionPattern< MemberAccessOp >.
|
pure virtual |
Checks if this pattern is applicable to the given operation for statement emission.
Implemented in circt::ExportSystemC::OpEmissionPattern< Op >, circt::ExportSystemC::OpEmissionPattern< BindPortOp >, circt::ExportSystemC::OpEmissionPattern< ReturnOp >, circt::ExportSystemC::OpEmissionPattern< CallIndirectOp >, circt::ExportSystemC::OpEmissionPattern< VariableOp >, circt::ExportSystemC::OpEmissionPattern< FuncOp >, circt::ExportSystemC::OpEmissionPattern< CallOp >, circt::ExportSystemC::OpEmissionPattern< AssignOp >, and circt::ExportSystemC::OpEmissionPattern< MemberAccessOp >.