//===- IRDLTraits.h - IRDL traits definition ---------------------*- 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 // //===----------------------------------------------------------------------===// // // This file declares the traits used by the IR Definition Language dialect. // //===----------------------------------------------------------------------===// #ifndef MLIR_DIALECT_IRDL_IR_IRDLTRAITS_H_ #define MLIR_DIALECT_IRDL_IR_IRDLTRAITS_H_ #include "mlir/IR/OpDefinition.h" #include "llvm/Support/Casting.h" namespace mlir { namespace OpTrait { /// Characterize operations that have at most a single operation of certain /// types in their region. /// This check is only done on the children that are immediate children of the /// operation, and does not recurse into the children's regions. /// This trait expects the Op to satisfy the `OneRegion` trait. template <typename... ChildOps> class AtMostOneChildOf { … }; } // namespace OpTrait } // namespace mlir #endif // MLIR_DIALECT_IRDL_IR_IRDLTRAITS_H_