//===- Interval.h -----------------------------------------------*- 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 // //===----------------------------------------------------------------------===// // // The Interval class is a generic interval of ordered objects that implement: // - T * T::getPrevNode() // - T * T::getNextNode() // - bool T::comesBefore(const T *) const // // This is currently used for Instruction intervals. // It provides an API for some basic operations on the interval, including some // simple set operations, like union, intersection and others. // //===----------------------------------------------------------------------===// #ifndef LLVM_TRANSFORMS_VECTORIZE_SANDBOXVECTORIZER_INSTRINTERVAL_H #define LLVM_TRANSFORMS_VECTORIZE_SANDBOXVECTORIZER_INSTRINTERVAL_H #include "llvm/ADT/ArrayRef.h" #include "llvm/Support/raw_ostream.h" #include <iterator> namespace llvm::sandboxir { /// A simple iterator for iterating the interval. template <typename T, typename IntervalType> class IntervalIterator { … }; template <typename T> class Interval { … }; } // namespace llvm::sandboxir #endif // LLVM_TRANSFORMS_VECTORIZE_SANDBOXVECTORIZER_INSTRINTERVAL_H