Files
gps/tools/local/circt/include/mlir/Dialect/PDLInterp/IR/PDLInterpOpsDialect.h.inc
T
2026-07-12 11:01:51 +03:00

44 lines
2.2 KiB
C++

/*===- TableGen'erated file -------------------------------------*- C++ -*-===*\
|* *|
|* Dialect Declarations *|
|* *|
|* Automatically generated file, do not edit! *|
|* From: PDLInterpOps.td *|
|* *|
\*===----------------------------------------------------------------------===*/
namespace mlir::pdl_interp {
/// Interpreted pattern execution dialect
/// The PDL Interpreter dialect provides a lower level abstraction compared to
/// the PDL dialect, and is targeted towards low level optimization and
/// interpreter code generation. The dialect operations encapsulates
/// low-level pattern match and rewrite "primitives", such as navigating the
/// IR (Operation::getOperand), creating new operations (OpBuilder::create),
/// etc. Many of the operations within this dialect also fuse branching control
/// flow with some form of a predicate comparison operation. This type of fusion
/// reduces the amount of work that an interpreter must do when executing.
class PDLInterpDialect : public ::mlir::Dialect {
explicit PDLInterpDialect(::mlir::MLIRContext *context);
void initialize();
friend class ::mlir::MLIRContext;
public:
~PDLInterpDialect() override;
static constexpr ::llvm::StringLiteral getDialectNamespace() {
return ::llvm::StringLiteral("pdl_interp");
}
/// Returns the name of the function containing the matcher code. This
/// function is called by the interpreter when matching an operation.
static StringRef getMatcherFunctionName() { return "matcher"; }
/// Returns the name of the module containing the rewrite functions. These
/// functions are invoked by distinct patterns within the matcher function
/// to rewrite the IR after a successful match.
static StringRef getRewriterModuleName() { return "rewriters"; }
};
} // namespace mlir::pdl_interp
MLIR_DECLARE_EXPLICIT_TYPE_ID(::mlir::pdl_interp::PDLInterpDialect)