CIRCT 20.0.0git
|
Emit a systemc.cpp.call operation. More...
Private Member Functions | |
MatchResult | matchInlinable (Value value) override |
Checks if this pattern is applicable to the given value to emit an inlinable expression. | |
void | emitInlined (Value value, EmissionPrinter &p) override |
void | emitStatement (CallOp op, EmissionPrinter &p) override |
Emit zero (default) or more statements for the given operation. | |
void | printCall (CallOp op, EmissionPrinter &p) |
OpEmissionPattern (MLIRContext *context) | |
Additional Inherited Members | |
![]() | |
OpEmissionPattern (MLIRContext *context) | |
void | emitStatement (mlir::Operation *op, EmissionPrinter &p) final |
Emit zero or more statements for the given operation. | |
MatchResult | matchInlinable (Value value) override |
Checks if this pattern is applicable to the given value to emit an inlinable expression. | |
bool | matchStatement (mlir::Operation *op) override |
Checks if this pattern is applicable to the given operation for statement emission. | |
void | emitInlined (mlir::Value value, EmissionPrinter &p) override |
Emit the expression for the given value. | |
![]() | |
OpEmissionPatternBase (StringRef operationName, MLIRContext *context) | |
virtual | ~OpEmissionPatternBase ()=default |
![]() | |
PatternBase (const void *rootValue) | |
const void * | getRootValue () const |
Get a unique identifier for the C++ type the pattern is matching on. | |
![]() | |
template<typename E , typename... Args> | |
static std::unique_ptr< E > | create (Args &&...args) |
Emit a systemc.cpp.call operation.
If it has no result, it is treated as a statement, otherwise as an expression that will always be inlined. That means, an emission preparation pass has to insert a VariableOp to bind the call result to such that reordering of the call cannot lead to incorrectness due to interference of side-effects.
Definition at line 437 of file SystemCEmissionPatterns.cpp.
|
inlineoverrideprivate |
Definition at line 446 of file SystemCEmissionPatterns.cpp.
References printCall().
|
inlineoverrideprivatevirtual |
Emit zero (default) or more statements for the given operation.
Reimplemented from circt::ExportSystemC::OpEmissionPattern< CallOp >.
Definition at line 450 of file SystemCEmissionPatterns.cpp.
References printCall().
|
inlineoverrideprivatevirtual |
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.
Implements circt::ExportSystemC::OpEmissionPatternBase.
Definition at line 440 of file SystemCEmissionPatterns.cpp.
|
inlineexplicitprivate |
Definition at line 169 of file EmissionPattern.h.
|
inlineprivate |
Definition at line 461 of file SystemCEmissionPatterns.cpp.
Referenced by emitInlined(), and emitStatement().