MLIR  22.0.0git
Rewrite.h
Go to the documentation of this file.
1 //===- Rewrite.h - C API Utils for Core MLIR classes ------------*- C++ -*-===//
2 //
3 // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
4 // See https://llvm.org/LICENSE.txt for license information.
5 // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
6 //
7 //===----------------------------------------------------------------------===//
8 //
9 // This file contains declarations of implementation details of the C API for
10 // rewrite patterns. This file should not be included from C++ code other than
11 // C API implementation nor from C code.
12 //
13 //===----------------------------------------------------------------------===//
14 
15 #ifndef MLIR_CAPI_REWRITE_H
16 #define MLIR_CAPI_REWRITE_H
17 
18 #include "mlir-c/Rewrite.h"
19 #include "mlir/CAPI/Wrap.h"
20 #include "mlir/IR/PatternMatch.h"
22 
24 DEFINE_C_API_PTR_METHODS(MlirRewritePattern, const mlir::RewritePattern)
26 DEFINE_C_API_PTR_METHODS(MlirFrozenRewritePatternSet,
29 
30 #if MLIR_ENABLE_PDL_IN_PATTERNMATCH
31 DEFINE_C_API_PTR_METHODS(MlirPDLPatternModule, mlir::PDLPatternModule)
32 DEFINE_C_API_PTR_METHODS(MlirPDLResultList, mlir::PDLResultList)
33 DEFINE_C_API_PTR_METHODS(MlirPDLValue, const mlir::PDLValue)
34 #endif // MLIR_ENABLE_PDL_IN_PATTERNMATCH
35 
36 #endif // MLIR_CAPIREWRITER_H
#define DEFINE_C_API_PTR_METHODS(name, cpptype)
Definition: Wrap.h:25
This class represents a frozen set of patterns that can be processed by a pattern applicator.
A special type of RewriterBase that coordinates the application of a rewrite pattern on the current I...
Definition: PatternMatch.h:793
RewritePattern is the common base class for all DAG to DAG replacements.
Definition: PatternMatch.h:238
This class coordinates the application of a rewrite on a set of IR, providing a way for clients to tr...
Definition: PatternMatch.h:368