//===-- ShapeUtils.h - TOSA shape support declarations ----------*- 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 // //===----------------------------------------------------------------------===// // // Class declarations for shape utilities meant to assist shape propagation. // //===----------------------------------------------------------------------===// #ifndef MLIR_DIALECT_TOSA_UTILS_SHAPEUTILS_H #define MLIR_DIALECT_TOSA_UTILS_SHAPEUTILS_H #include "mlir/IR/BuiltinTypes.h" #include "mlir/IR/Types.h" #include "mlir/Interfaces/InferTypeOpInterface.h" #include "llvm/ADT/Sequence.h" #include "llvm/ADT/SmallVector.h" namespace mlir { namespace tosa { /// Statically known information for a particular Value. /// /// This struct currently tracks only information relevant for tensor/array-like /// shaped types. It is fine to associate a `ValueKnowledge` with a non-shaped /// type as long as it is in the default "no knowledge" state returned by /// `getPessimisticValueState`. The important invariant is that we cannot /// claim to know something about a value which is false. /// /// This class could also be called "dataflow facts", "lattice value", etc. struct ValueKnowledge { … }; } // namespace tosa } // namespace mlir #endif // MLIR_DIALECT_TOSA_UTILS_SHAPEUTILS_H