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. More... | |
void | emitInlined (Value value, EmissionPrinter &p) override |
void | emitStatement (CallOp op, EmissionPrinter &p) override |
Emit zero (default) or more statements for the given operation. More... | |
void | printCall (CallOp op, EmissionPrinter &p) |
Additional Inherited Members | |
Public Member Functions inherited from circt::ExportSystemC::OpEmissionPattern< CallOp > | |
OpEmissionPattern (MLIRContext *context) | |
void | emitStatement (mlir::Operation *op, EmissionPrinter &p) final |
Emit zero or more statements for the given operation. More... | |
MatchResult | matchInlinable (Value value) override |
Checks if this pattern is applicable to the given value to emit an inlinable expression. More... | |
bool | matchStatement (mlir::Operation *op) override |
Checks if this pattern is applicable to the given operation for statement emission. More... | |
void | emitInlined (mlir::Value value, EmissionPrinter &p) override |
Emit the expression for the given value. More... | |
Public Member Functions inherited from circt::ExportSystemC::OpEmissionPatternBase | |
OpEmissionPatternBase (StringRef operationName, MLIRContext *context) | |
virtual | ~OpEmissionPatternBase ()=default |
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... | |
Static Public Member Functions inherited from circt::ExportSystemC::PatternBase | |
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.
|
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.
|
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.
|
inlineprivate |
Definition at line 461 of file SystemCEmissionPatterns.cpp.