//===- BreakpointManager.h - Breakpoint Manager Support ----*- 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 // //===----------------------------------------------------------------------===// #ifndef MLIR_TRACING_BREAKPOINTMANAGER_H #define MLIR_TRACING_BREAKPOINTMANAGER_H #include "mlir/IR/Action.h" #include "llvm/ADT/MapVector.h" namespace mlir { namespace tracing { /// This abstract class represents a breakpoint. class Breakpoint { … }; inline raw_ostream &operator<<(raw_ostream &os, const Breakpoint &breakpoint) { … } /// This class provides a CRTP wrapper around a base breakpoint class to define /// a few necessary utility methods. template <typename Derived> class BreakpointBase : public Breakpoint { … }; /// A breakpoint manager is responsible for managing a set of breakpoints and /// matching them to a given action. class BreakpointManager { … }; /// CRTP base class for BreakpointManager implementations. template <typename Derived> class BreakpointManagerBase : public BreakpointManager { … }; } // namespace tracing } // namespace mlir #endif // MLIR_TRACING_BREAKPOINTMANAGER_H