//===- Constraint.h - Constraint class --------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// // // Constraint wrapper to simplify using TableGen Record for constraints. // //===----------------------------------------------------------------------===// #ifndef MLIR_TABLEGEN_CONSTRAINT_H_ #define MLIR_TABLEGEN_CONSTRAINT_H_ #include "mlir/Support/LLVM.h" #include "mlir/TableGen/Predicate.h" #include "llvm/ADT/SmallVector.h" #include "llvm/ADT/StringRef.h" namespace llvm { class Record; } // namespace llvm namespace mlir { namespace tblgen { // Wrapper class with helper methods for accessing Constraint defined in // TableGen. class Constraint { … }; // An constraint and the concrete entities to place the constraint on. struct AppliedConstraint { … }; } // namespace tblgen } // namespace mlir namespace llvm { /// Unique constraints by their predicate and summary. Constraints that share /// the same predicate may have different descriptions; ensure that the /// correct error message is reported when verification fails. template <> struct DenseMapInfo<mlir::tblgen::Constraint> { … }; } // namespace llvm #endif // MLIR_TABLEGEN_CONSTRAINT_H_