1//===- PDLToPDLInterp.h - PDL to PDL Interpreter conversion -----*- 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 provides a pass for PDL to PDL Interpreter dialect conversion.
10//
11//===----------------------------------------------------------------------===//
12
13#ifndef MLIR_CONVERSION_PDLTOPDLINTERP_PDLTOPDLINTERP_H
14#define MLIR_CONVERSION_PDLTOPDLINTERP_PDLTOPDLINTERP_H
15
16#include "mlir/Pass/Pass.h"
17#include "mlir/Support/LLVM.h"
18
19namespace mlir {
20class ModuleOp;
21class Operation;
22template <typename OpT>
23class OperationPass;
24class PDLPatternConfigSet;
25
26#define GEN_PASS_DECL_CONVERTPDLTOPDLINTERPPASS
27#include "mlir/Conversion/Passes.h.inc"
28
29/// Creates and returns a pass to convert PDL ops to PDL interpreter ops.
30/// `configMap` holds a map of the configurations for each pattern being
31/// compiled.
32std::unique_ptr<OperationPass<ModuleOp>> createConvertPDLToPDLInterpPass(
33 DenseMap<Operation *, PDLPatternConfigSet *> &configMap);
34
35} // namespace mlir
36
37#endif // MLIR_CONVERSION_PDLTOPDLINTERP_PDLTOPDLINTERP_H
38

source code of mlir/include/mlir/Conversion/PDLToPDLInterp/PDLToPDLInterp.h