//===- OwningOpRef.h - MLIR OwningOpRef -------------------------*- 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 provides a base class for owning op refs. // //===----------------------------------------------------------------------===// #ifndef MLIR_IR_OWNINGOPREF_H #define MLIR_IR_OWNINGOPREF_H #include <type_traits> #include <utility> namespace mlir { class Operation; /// This class acts as an owning reference to an op, and will automatically /// destroy the held op on destruction if the held op is valid. /// /// Note that OpBuilder and related functionality should be highly preferred /// instead, and this should only be used in situations where existing solutions /// are not viable. template <typename OpTy> class OwningOpRef { … }; } // namespace mlir #endif // MLIR_IR_OWNINGOPREF_H