xref: /llvm-project/mlir/include/mlir/Dialect/Transform/IR/TransformAttrs.td (revision 3fe7127d48fde531901c795826b566d93dbf1ea4)
1//===- TransformAttrs.td - Transform dialect attributes ----*- tablegen -*-===//
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#ifndef MLIR_DIALECT_TRANSFORM_IR_TRANSFORMATTRS
10#define MLIR_DIALECT_TRANSFORM_IR_TRANSFORMATTRS
11
12include "mlir/IR/EnumAttr.td"
13
14def PropagateFailuresCase : I32EnumAttrCase<"Propagate", 1, "propagate">;
15def SuppressFailuresCase : I32EnumAttrCase<"Suppress", 2, "suppress">;
16
17def FailurePropagationMode : I32EnumAttr<
18    "FailurePropagationMode", "Silenceable error propagation policy",
19    [PropagateFailuresCase, SuppressFailuresCase]> {
20  let cppNamespace = "::mlir::transform";
21}
22
23def MatchCmpIPredicateAttr : I32EnumAttr<
24    "MatchCmpIPredicate", "",
25    [
26      I32EnumAttrCase<"eq", 0>,
27      I32EnumAttrCase<"ne", 1>,
28      I32EnumAttrCase<"lt", 2>,
29      I32EnumAttrCase<"le", 3>,
30      I32EnumAttrCase<"gt", 4>,
31      I32EnumAttrCase<"ge", 5>,
32    ]> {
33  let cppNamespace = "::mlir::transform";
34}
35
36#endif  // MLIR_DIALECT_TRANSFORM_IR_TRANSFORMATTRS
37